Emacs + OSX中的Bash没有找到通过terminal.app安装的gems?

时间:2009-08-10 13:57:20

标签: ruby bash macos emacs rubygems

我在osx上的emacs中运行bash,然后从另一个地方运行它的gem.app

bash中的

which gem
/usr/bin/gem

在终端:

which gem
/opt/local/bin/gem

如何更改bash以匹配终端?

1 个答案:

答案 0 :(得分:7)

我猜测在emacs bash shell中$PATH是不同的。您可以通过在每个命令中运行此命令来检查它。

echo $PATH

这是用于查找命令的查找路径。您需要在其中包含/ opt / local / bin。

export PATH="/opt/local/bin:$PATH"

将该行放在~/.bashrc文件中,并且在emacs中使用时应该使用bash(除非它是在不同的用户下运行)。


<强>更新

在评论中提到的Singletoned中,Emacs不会加载~/.bash_profile~/.profile,但终端会加载。此文件可能已包含此PATH定义,导致两者具有不同的行为。

我建议将PATH定义从bash_profile文件移到bashrc。但是,如果存在bashrc,则终端不会加载bash_profile

解决方法是将其添加到~/.bash_profile

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

然后,您可以将其他所有内容移至bashrcbash_profile将包含在{{1}}中。