3
我在OSX emacs的运行bash和来自不同的地方拉宝石然后terminal.app在Emacs + OSX中找不到通过terminal.app安装的gems?
在bash:
which gem
/usr/bin/gem
在终端:
which gem
/opt/local/bin/gem
如何改变该bash匹配终端?
我在OSX emacs的运行bash和来自不同的地方拉宝石然后terminal.app在Emacs + OSX中找不到通过terminal.app安装的gems?
在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使用时有所回升(除非它被不同的用户或东西下运行)。
更新:
由于Singletoned在评论中提到的,Emacs的不会加载~/.bash_profile
或~/.profile
但终端会。这个文件可能已经包含这个定义,导致两者有不同的行为。
我建议将PATH定义从bash_profile
文件移到bashrc
。但是,如果bash_profile
存在,终端将不会加载bashrc
。
解决方案是将此添加到~/.bash_profile
。
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
然后,您可以移动其他一切bashrc
将被纳入bash_profile
。
太棒了,这个问题困扰了我很长时间。 – dMix 2009-08-10 20:44:27
为了澄清这一点,当Emacs启动一个bash会话时,它将运行.bashrc,但不是.profile或.bash_profile。终端运行.bashrc和.profile或.bash_profile之一。这就是为什么你有不同的路径。 – Singletoned 2009-08-11 14:50:48
感谢Singletoned,更新了答案以反映这一点。 – ryanb 2009-08-11 15:18:36