【Raspberry pi 3B+】bash_profileの設定が読まれないので調べたbash関連のメモ

raspberry pi

.bash_profileに追加パスを追記しても一向に反映されない

なんで!!!!

ということでbashシェルの設定ファイルの実験をイロイロ行ったのでメモとして残しておきます。


環境

・ハードウエア:
Rasberry Pi 3B
Rasberry Pi 3B+ も同様

・OS:
Raspbian GNU/Linux 9.9

・カーネル:
Linux Raspberrypi 4.14.98-v7+


行いたいこと

pyenvで”python”コマンドで実行されるpythonのバージョンを
デフォルトのpython2系からpython3系に切り替えたい。


調べたこ

まず。RaspbianはDebian系なので調べてみた。

bashの設定ファイルが読まれる順番は
debian系の一般的なディストリビューションの場合は下記のようになってるらしい。

~/.bash_profileが読まれる  ←今回なかったから作った
↑がない場合、~/.bash_loginがあれば読み込む
↑がない場合、~/.profileがあれば読み込む。
見つけたファイルを読んで、そこで止まるイメージ。
全部読まれるわけではない様です。

その他よく目にする
~/.bashrc
はシェル起動時に読まれるようです。(起動時に毎回)


実験

ということで
~/.bash_profile
が無かったので作成してPATH追記の設定を書いてみた。が反映されれない
いろいろ実験していると起動時には読まれていない様子。
SSHでログインすると読まれるので全く無意味ではないらしい。
~/.bash_profileはログインシェルじゃないと読まれないらしい。
~/.bash_loginファイルも作ってみたが反映されず、同様の動き。
ログインシェルじゃないとだめらしい。


起動時に反映させるには

~/.profile
は起動時に読まれる様子。
なのでRaspberry Pi起動時にPATHをエクスポートしたい場合には
~/.profile
に追記すれば良いということがわかった。


最終的な設定

~/.profileを編集して一番下に追記したら起動時に読まれるようになりました。

#~/.profileに下記を追記
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

 

今の所不具合もなく動作しています 2019/05/10 tori-pun.

 

スポンサーリンク