2009年9月30日水曜日

gdm 経由でログインすると .bash_profile が実行されない

現象

.bash_profile はコンソールからログインすると実行されるのに、GDM からログインすると実行されない。そのため、そこに書いてある環境変数の設定コマンドが実行されず、環境変数が定義されない。

対応

ネット上で調査すると、この件はあちこちで取り沙汰されているようだが、要は "/etc/gdm/Xsession" で ".bash_profile" が実行されていないのはバグじゃないのか、ということのようである。というのは、このスクリプトの中に以下のコードがあるからである。
# this will go into the .xsession-errors along with all other echo's
# good for debugging where things went wrong
echo "$0: Beginning session setup..."

# First read /etc/profile and .profile
test -f /etc/profile && . /etc/profile
test -f "$HOME/.profile" && . "$HOME/.profile"
# Second read /etc/xprofile and .xprofile for X specific setup
test -f /etc/xprofile && . /etc/xprofile
test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
この中で、ついでに .bash_profile を呼び出せばいいじゃないか、ということらしい。この対策は、調べてみると以下の二つが見つかった。
  • 直接この中で .bash_profile を呼び出す
  • 冒頭の "#!/bin/sh" に "--login" オプションを付加する
しかし今回はもっと簡単に、せっかくこの中で "$HOME/.profile" が呼び出されているのだから、このファイルの中で ". $HOME/.bash_profile" することにした。
これで、しばらく様子を見ることにする。

0 件のコメント:

コメントを投稿