emacsのPATHって・・・?
evernote-mode.elを使おうとするものの、なにをやっても Unknown error になってしまう。
どうやら emacs から呼び出そうとしている ruby が /usr/bin にあるものなのが原因らしい(使いたいのは macport で入れた ruby)。
M-x shell-command which ruby => /usr/bin/ruby
PATH と exec-path には /opt/local/bin を追加済み。
(getenv "PATH") #=> ("/opt/local/bin", ...)
exec-path #=> ("/opt/local/bin", ...)
shell-command で PATH を見ると違う結果に。
M-x shell-command echo $PATH => /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:...
setenv で PATH に空文字列を入れても shell-command から見た PATH は空にならない。
(setenv "PATH" "") (getenv "PATH") => ""
M-x shell-command echo $PATH => /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
どうやら getenv で得られる PATH の前に強制的に /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin がつく模様。
(setenv "PATH" "/opt/local") (getenv "PATH") => "/opt/local"
M-x shell-command echo $PATH => /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin
原因がわからない。別のサーバーで同じことをやったら、 shell-command でとれる方の PATH も空になった。.emacs をまっさらにしてもなったので、はemacsの設定関係ないみたい。
せめて後ろに付いてくれれば・・・。