rbenv: 在Linux Mint上找不到gem命令

11

我正在使用Linux Mint 17.2操作系统。 最近我使用apt-get purge ruby命令卸载了ruby。

然后我安装了rbenv并使用rbenv install 2.3.0命令安装了Ruby 2.3.0,现在~/.rbenv/versions/2.3.0/bin/ruby已经存在。

但是现在我无法使用gem install rubocop命令安装rubocop。我得到了以下错误:

$ gem install rubocop
rbenv: gem: command not found

The `gem' command exists in these Ruby versions:
  2.3.0

但我可以执行~/.rbenv/versions/2.3.0/bin/gem install rubocop。 然而,完成后我无法使用它:

$ rubocop --auto-correct
-bash: /usr/local/bin/rubocop: /usr/bin/ruby1.9.1: bad interpreter: No such file or directory

我也找不到这个红宝石的来源:

$ dpkg -S /usr/bin/ruby1.9.1
dpkg-query: no path found matching pattern /usr/bin/ruby1.9.1

可能是很久以前通过 RVM 安装的。

有什么办法可以修复我的 Ruby 吗?

2个回答

31

尝试运行 rbenv global 2.3.0 && rbenv rehash


1
谢谢Mike。这个方法对我有用。你能解释一下你的答案吗?我想知道自己哪里做错了。 - Housni
4
在使用之前,您应该选择Ruby版本并仅安装它,但没有进行选择。此外,在重要操作之后,请运行"rbenv rehash"来更新rbenv状态。 - Mike Belyakov
据我所知,每次安装构建本地代码的 gem 后,您都必须运行 rbenv rehash 命令来更新 shell 魔术以适应新的 gem。如果您忘记了这一点,这可能会让您感到困扰。 - Andy D
3
@MikeBelyakov你的评论应该作为答案的一部分,因为它描述了命令的本质。 - Zeeng
这个答案解决了我的问题,评论也描述得非常好。谢谢。 - Sang Dang

10

看起来您还没有运行 rbenv shell 命令将 bin shims 添加到您的路径中。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

建议将此内容添加到您的 .bashrc 或 .bash_profile 中,以便在登录时执行。

请阅读这篇文章 - 它涵盖了 rbenv 和 bundler,但最初的设置是您需要查看的内容。


这也是我最初的想法,但我在我的rc文件中有所需的内容。我甚至多次进行了源操作,以确保所需的路径在$PATH中。不过Mikes的解决方案对我有效。感谢您抽出时间回复! - Housni
很高兴你解决了它 :) - mcfinnigan
如果 which rbenv > /dev/null; then eval "$(rbenv init -)"; fi 更安全一些。 - voidstate

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