apple純正のsh,zsh,bash用のダメダメなパスはどのファイルに記載ありますか?
MacOSX
問題発生
ruby2.5.8にしたのでダメそうなプログラムをvimからチェックしていたら何かがおかしい。
$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6.2
- RUBY VERSION: 2.5.8 (2020-03-31 patchlevel 224) [x86_64-darwin13]
(中略)
- RUBY EXECUTABLE: /usr/local/stow/ruby/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/stow/ruby/bin
(中略)
- SHELL PATH:
- /usr/local/stow/ruby/bin
- /usr/local/stow/gettext-021/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
$ vim
(vimから :!ruby -v )
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13]
Press ENTER or type command to continue
ruby 2.0.0で問題だ!
$ echo $PATH
/usr/local/stow/ruby/bin:/usr/local/stow/gettext-021/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/xxxxxxx/bin:/usr/local/sbin
シェルから echo $PATH すると問題がない。
$ vim
(vimから :!echo '$PATH' 実行)
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/stow/ruby/bin:/usr/local/stow/gettext-021/bin:/Users/xxxxxxx/bin:/usr/local/sbin
Press ENTER or type command to continue
なんだこれは!大問題だ!
vimから !echo $PATH 実行すると見える
「/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:」
たしか、これはapple純正のbashなダメダメなパスの書き方。
vimが/etcディレクトリ辺りのどこからか拾っているのだろう。
「/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin」と書かれていれば問題起きない。
ホームディレクトリに.bash_profileがあれば問題ないのかもしれない。
筆者はzsh使用。
質問 apple純正のbashなダメダメなパスはどのディレクトリにありますか?
自己解決
/etc に pathsファイルを見つけた。
sudo vim で編集し、/usr/local/binを一番上にして一応だが、解決した。
但しvimからみえる $PATH
とシェルからみえる $PATH
は異なっている。厳密には問題は残る。
$ vim
(vimから :!echo $PATH 実行)
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/stow/ruby/bin:/usr/local/stow/gettext-021/bin:(以下略)
Press ENTER or type command to continue
freeBSD などBSD系で /usr/local/bin を最後に書くミスはしてないと思う。appleのエンジニアのミスと思われる。
以上