.zshenv:2: 找不到命令: rbenv

10
当我从bash切换到zsh时,我查找了如何解决我的rbenv文件夹在zsh中未被正确使用的问题,然后找到了这个
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshenv
$ echo 'eval "$(rbenv init -)"' >> ~/.zshenv
$ echo 'source $HOME/.zshenv' >> ~/.zshrc
$ exec $SHELL

我运行了所有这些命令,并且似乎现在使用了正确的rbenv文件夹,但是每当我打开一个新的iTerm窗口时,都会出现这个错误消息:
/Users/myname/.zshenv:2: command not found: rbenv

我到底做错了什么?非常感谢任何帮助。

尝试移除rbenv并从头重新安装。 - anothermh
你不需要最后一行代码;.zshenv会在.zshrc之前自动被调用。 - chepner
1
你确定 rbenv 实际上在 $HOME/.rbenv/bin 目录下吗? - chepner
@ahrampy,这些评论或者我的回答有帮到您吗?能否请您给我们一些反馈或者接受这个答案呢? - Thomas Koppensteiner
3个回答

12

您需要将两个内容添加到您的 PATH 中。 首先是 rbenv 本身,其次是 Ruby 的 shims

第一部分:rbenv

安装

Homebrew

如果您使用 brew 安装了 rbenv, 则 rbenv 可执行文件应链接到 /usr/local/bin/rbenv

有关详细信息,请参见 homebrew 安装文档

如果缺少,请将 /usr/local/bin 添加到您的路径 PATH 中。

# in ~/.zshrc

export PATH=/usr/local/bin:$PATH

Github 检出

如果您通过 Github 检出安装了rbenv,那么 rbenv 可执行文件应存储在 ~/.rbenv/bin 中。

详情请参见GitHub 安装文档

如果缺少,请将 ~/.rbenv/bin 添加到您的路径 PATH

# in ~/.zshrc

export PATH=$HOME/.rbenv/bin:$PATH

验证

请通过执行命令 which rbenv 来验证您的路径中是否包含 rbenv。 该命令应返回安装路径。

第二部分 shims

将 Ruby 的 shims 添加到您的路径中。

# in ~/.zshrc

eval "$(rbenv init -)"

你可以直接添加shims文件夹,而不是使用 eval "$(rbenv init -)"命令。

# in ~/.zshrc

export RBENV_ROOT=$HOME/.rbenv
export PATH=$RBENV_ROOT/shims:/versions:$PATH

第三部分 rbenv doctor

您也可以运行在这里提到的rbenv-doctor脚本来检查您的安装情况。


1
有趣的是,我直接跳到了brew doctor脚本 curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash,它识别出了我错过的一件事情,节省了很多时间。 - stevec

3
我曾经遇到过同样的错误。我可以正常运行which rbenvrbenv,但无论如何都会出现command not found: rbenv。问题在于我将eval "$(rbenv init -)"放在了我的~/.zshenv文件中而不是~/.zshrc文件中。你可能仍然需要在~/.zshenv中添加rbenv的路径到$PATH以使其正常工作。

3

我遇到了同样的问题...当我运行Ruby或Rbenv时,出现了"command not found"的错误。

尝试这个方法:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshenv

echo 'eval "$(rbenv init - zsh)"' >> ~/.zshenv

echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.zshenv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接