我正在osx上的emacs中运行bash,然后从另一个地方运行来自terminal.app的拉宝石
在bash中:
which gem /usr/bin/gem
在终端:
which gem /opt/local/bin/gem
如何更改bash以匹配终端?
我猜测$PATH
在emacs bash shell中有所不同.您可以通过在每个命令中运行此命令来检查它.
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
然后,您可以移动bashrc
其中包含的所有其他内容bash_profile
.