turtlechanのブログ

無知の私がLinuxをいじりながら書いていくブログ

【Linux】Debian の lightdm が .bash_profile(.profile) を読み込まない

特に理由もなくディスプレイマネージャーを「lightdm」に変更したら、「.bash_profile」を読み込んでくれなくなった。

解決方法を探すのに苦労したので、タートルちゃんブログに記事として残しておこうと思います。

まえおき

私が普段使っている Debian のディスプレイマネージャーを「lightdm」に変更しました。
インストールする際にデフォルトで起動するディスプレイマネージャーの選択画面が表示され、問題なくインストールが完了し、起動も問題ないと思っていました。
しばらく使って気づいたんですが、「.bash_profile」に書いている環境変数(PATH)が反映されていなかったのです。私は普段 pyenv を愛用しているのですが見つからないという。。。

ちなみに変更前は「sddm」を使っていました。
その時は「.bash_profile」も正常に読み込まれていました。つまり「lightdm」のせいで読み込まれなくなったわけです。

「.bash_profile」を「.profile」に変更しても読み込まれませんでした。
どうやら Debianlightdm はログイン時にプロファイルファイルを読み込まなくなるようだ。

余談

Debianbash は「.bash_profile」が現役ですが、Ubuntu の場合は「.bash_profile」ではなく「.profile」に変更になっていたかと思います。
Ubuntu の方は「.bash_profile」で書くと読み込まれないので「.profile」にしましょう。それで解決するはず。

解決方法

細かいことはどうでもよい。

.bash_profile の場合、以下のコマンドを実行。

$ echo '. $HOME/.bash_profile' >> ~/.xsessionrc

.profile の場合は、以下のコマンドを実行する。

$ echo '. $HOME/.profile' >> ~/.xsessionrc

上記のコマンド実行後、ログアウト&ログイン もしくは 再起動すればプロファイルが読み込まれる。
環境変数(PATH)も反映されているはずです。

何をしているか

ホームディレクトリ直下の「.xsessionrc」に

. $HOME/.bash_profile

の一行を追記(.xsessionrcファイル が存在していない場合は作成)しています。
行頭の .(ドット) はコマンドでいう source です。間違えじゃないので消さないようにね。

 

「.xsessionrc」って何か
GUI起動をすると必ず実行される(だろう)設定ファイル という認識しかありません。
私は詳しいことは何も知りません。私の知っていることをここに書くよりも、ググった方が詳しいだろうし分かりやすいはずです。

おわりに

.bash_profile を通らないなら、.xsessionrc(必ず通る道)で指示しよう的な、当たり前そうな解決策です。

そもそも .bash_profile が読み込まれるのが当たり前だと思っていたので、記述や設定の間違いを疑っていました。そして多くの時間を無駄にした。
思い込みって怖いですね。

 

他にもっと良い解決方法あるよってのがあれば、教えてください。

 

何かの参考になれば幸いです。