0

首先,我是 Linux 新手,如果有任何术语错误,请见谅;我会尽量用恰当的方式表达这个问题。

我已经2.4.0通过 Linuxbrew 安装了 Ruby ( )。该ruby命令工作正常;它安装正确。但是,当我尝试使用该gem命令(应该安装 Ruby)时,我收到此错误: bash: /usr/bin/gem: No such file or directory

现在,因为我用 Linuxbrew 安装了它,所以我知道这个目录不正确。例如:

结果which gem/home/me/.linuxbrew/bin/gem

结果which ruby/home/me/.linuxbrew/bin/ruby

因此,它似乎gem已安装,但该gem命令未链接到正确的路径。我假设我需要将gem命令指向路径,which gem而不是/usr/bin/gembash 所说的不存在。我将如何改变这一点?我徒劳地试图改变,bash_profile但我不知道该怎么做。

ruby再次,如果和gem不被称为命令,并且问题不是标题中所述的“默认目录” ,请原谅。我不确定如何标记它。

编辑/TL;博士:

基本上,我怎样才能gem执行这个:/home/me/.linuxbrew/bin/gem而不是在中寻找程序/usr/bin/gem

4

3 回答 3

1

首先,您收到错误的原因/usr/bin/gem not found是,在同一个 shell 会话的早期,该文件曾经在那里。当多次运行相同的命令时,Bash 会缓存它以加快速度。运行hash -r将清除这一点。

PATH您似乎已经进行了编辑,因此该which命令给出了它的结果。

于 2017-03-24T23:15:50.457 回答
1

而不是 running gem, run /home/me/.linuxbrew/bin/gem,即键入完整的路径名(后跟您可能需要的任何参数)。

如果这变得太烦人,你可以改变你的 PATH。在你的 bin 目录前面加上

PATH=$HOME/.linuxbrew/bin:$PATH
于 2017-03-24T21:40:31.397 回答
0

回答我自己的问题-

由于我之前在同一个终端窗口中通过 apt-get 而不是 Linuxbrew 安装和卸载了 Ruby,Bash 正在寻找而不是我gem在Linuxbrewusr/bin中指定的路径。bash_profile

hash -r因此,我敢肯定,Stian 上面的回答也可以。

于 2017-03-26T12:33:32.297 回答