私はOSX上のemacsにはbashを実行していますし、そのその後、別の場所から宝石を引っ張っterminal.app bashでEmacs + OSXのBashは、terminal.app経由でインストールされた宝石を見つけられませんか?
:
ターミナルでwhich gem
/usr/bin/gem
:
which gem
/opt/local/bin/gem
がどのように変化しますかターミナルに一致するbash?
私はOSX上のemacsにはbashを実行していますし、そのその後、別の場所から宝石を引っ張っterminal.app bashでEmacs + OSXのBashは、terminal.app経由でインストールされた宝石を見つけられませんか?
:
ターミナルでwhich gem
/usr/bin/gem
:
which gem
/opt/local/bin/gem
がどのように変化しますかターミナルに一致するbash?
私は$PATH
がemacs bashシェルでは違うと思います。このコマンドをそれぞれ実行することでチェックアウトすることができます。
echo $PATH
これはコマンドを検索するためのルックアップパスです。これに/ opt/local/binを含める必要があります。
export PATH="/opt/local/bin:$PATH"
場所は、あなたの~/.bashrc
ファイルの内側の線とemacsの中で使用された場合(それが別のユーザーか何かの下で実行されていない限り)それはbashのでピックアップする必要があります。
更新:Singletonedはコメントで述べたように
、Emacsは~/.bash_profile
または~/.profile
が、ターミナル意志をロードしません。このファイルには既にこのPATH
定義が含まれているため、2つの動作が異なる場合があります。
bash_profile
ファイルからPATH定義をbashrc
に移動することをおすすめします。しかし、bash_profile
が存在する場合、端末はbashrc
をロードしません。
解決策は、これを~/.bash_profile
に追加することです。
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
その後、bash_profile
に含まれることになるbashrc
に他のすべてを移動することができます。
恐ろしいことに、この問題は長い間悩まされています。 – dMix
これを少し明確にするために、Emacsがbashセッションを開始すると.bashrcは実行されますが、.profileまたは.bash_profileは実行されません。ターミナルは.bashrcと.profileまたは.bash_profileのいずれかを実行します。そういうわけで、あなたは別の道を持っていました。 – Singletoned
ありがとうSingletoned、これを反映する答えを更新しました。 – ryanb