在OSX的Emacs中,如何解决通过Terminal.app安装的ruby gem未找到的问题?

更新于
2026-10-10 00:10:51
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计449个文字,预计阅读时间需要2分钟。

在OSX的Emacs中,如何解决通过Terminal.app安装的ruby gem未找到的问题?

我在OSX上的Emacs中运行bash,然后从另一个地方通过Terminal.app的拉姆达石运行。在bash中,使用`which gem`得到的是`/usr/bin/gem`,在终端中,使用`which gem`得到的是`/opt/local/bin/gem`。如何修改bash以匹配终端的路径?

我猜在Emacs的bash shell中,环境变量`$PATH`可能没有正确设置。可以在Emacs中设置`$PATH`来匹配终端的路径。以下是修改方法:

1. 打开Emacs。

2.在Emacs中,输入以下命令:

lisp (setenv PATH (concat (getenv PATH) :/opt/local/bin))

3.保存并关闭Emacs。

现在,在Emacs的bash shell中,`$PATH`应该包含了`/opt/local/bin`,这样就可以使用终端中的gem路径了。

我正在osx上的emacs中运行bash,然后从另一个地方运行来自terminal.app的拉宝石

在bash中:

which gem /usr/bin/gem

在终端:

which gem /opt/local/bin/gem

如何更改bash以匹配终端?

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

echo $PATH

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

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

将该行放在〜/ .bashrc文件中,当在emacs中使用时,它应该被bash拾取(除非它是在不同的用户或其他东西下运行).

在OSX的Emacs中,如何解决通过Terminal.app安装的ruby gem未找到的问题?

更新:

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

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

解决方案是将此添加到〜/ .bash_profile.

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

然后,您可以将其他所有内容移动到bashrc中,这将包含在bash_profile中.

本文共计449个文字,预计阅读时间需要2分钟。

在OSX的Emacs中,如何解决通过Terminal.app安装的ruby gem未找到的问题?

我在OSX上的Emacs中运行bash,然后从另一个地方通过Terminal.app的拉姆达石运行。在bash中,使用`which gem`得到的是`/usr/bin/gem`,在终端中,使用`which gem`得到的是`/opt/local/bin/gem`。如何修改bash以匹配终端的路径?

我猜在Emacs的bash shell中,环境变量`$PATH`可能没有正确设置。可以在Emacs中设置`$PATH`来匹配终端的路径。以下是修改方法:

1. 打开Emacs。

2.在Emacs中,输入以下命令:

lisp (setenv PATH (concat (getenv PATH) :/opt/local/bin))

3.保存并关闭Emacs。

现在,在Emacs的bash shell中,`$PATH`应该包含了`/opt/local/bin`,这样就可以使用终端中的gem路径了。

我正在osx上的emacs中运行bash,然后从另一个地方运行来自terminal.app的拉宝石

在bash中:

which gem /usr/bin/gem

在终端:

which gem /opt/local/bin/gem

如何更改bash以匹配终端?

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

echo $PATH

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

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

将该行放在〜/ .bashrc文件中,当在emacs中使用时,它应该被bash拾取(除非它是在不同的用户或其他东西下运行).

在OSX的Emacs中,如何解决通过Terminal.app安装的ruby gem未找到的问题?

更新:

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

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

解决方案是将此添加到〜/ .bash_profile.

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

然后,您可以将其他所有内容移动到bashrc中,这将包含在bash_profile中.