我在osx上的emacs中运行bash,它从一个不同于terminal.app的地方提取gems。
在bash中:
which gem
/usr/bin/gem在终端中:
which gem
/opt/local/bin/gem如何更改bash以匹配终端?
发布于 2009-08-10 14:46:18
我猜emacs bash shell中的$PATH是不同的。您可以通过在每个文件中运行此命令来检查它。
echo $PATH这是用于查找命令的查找路径。您需要将/opt/local/bin包含在其中。
export PATH="/opt/local/bin:$PATH"将该行放在~/.bashrc文件中,在emacs中使用它时,它应该被bash拾取(除非它是在不同的用户或其他用户下运行的)。
更新:
正如单例在评论中提到的,Emacs不会加载~/.bash_profile或~/.profile,但终端会。这个文件可能已经包含了这个PATH定义,导致两者具有不同的行为。
我建议将路径定义从bash_profile文件移到bashrc中。但是,如果bash_profile存在,终端将不会加载bashrc。
解决方案是将其添加到~/.bash_profile中。
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi然后,您可以将所有其他内容移动到将包含在bash_profile中的bashrc中。
https://stackoverflow.com/questions/1255050
复制相似问题