rbenv: ruby: 命令未找到。

27

我正在本地目录下使用ruby版本1.9.1-p378的rbenv。

运行命令 ruby -v时出现以下错误:

rbenv: ruby: command not found

The `ruby' command exists in these Ruby versions:
2.0.0-p353

有什么线索可以解释这是为什么吗?打包工具和 Rails 命令也无法正常工作。

命令 rbenv versions

* 1.9.1-p378 (set by /home/user/Desktop/r1/noko1/.ruby-version)
2.0.0-p353

正如您所看到的:ruby应用程序仅存在于ruby 2.0.0版本中,而不是1.9.1版本,只需将ruby切换到2.0.0即可。 - Малъ Скрылевъ
你真的(真的)不应该使用 Ruby 1.9.1,因为它在多个方面(编码、rubygems等)都存在问题,并且通常没有任何支持。如果你想使用 1.9 版本的 Ruby,你应该至少使用 Ruby 1.9.2。 - Holger Just
https://dev59.com/pG4NtIcB2Jgan1znXHV5#73418391 - Chaki_Black
7个回答

42
  1. 你收到的错误信息来自于 rbenv。这意味着 rbenv 已经安装并正常工作。

  2. 找出运行该项目所需的 Ruby 版本。要么在根目录下存在 .ruby-version 文件,要么项目中有人知道并推荐使用哪个版本。

  3. 如果 .ruby-version 文件中未指定版本,则在项目目录中创建 .ruby-version 文件。

  4. 在该目录下输入 ruby -v 命令。结果如何?如果输出的版本号和 .ruby-version 文件中要求的相同,那么你已经安装了匹配的 Ruby 版本。

  5. 如果上一条命令的输出不符合要求,则输入 rbenv install 命令安装对应版本的 Ruby。

现在 Ruby 已安装完成,接下来需要运行项目。这里假设项目附带 Rakefile。

  1. 安装 bundler 工具:gem install bundler

  2. 安装项目的依赖项:bundle install

  3. 使用项目指定的确切版本运行程序:bundle exec rails server


我正在尝试运行一个应用程序,但当我尝试使用2.0.0版本运行时出现问题。有关rbconfig/config的一些内容。这就是为什么我正在尝试使用1.9.1版本。根据应用程序的gemfile,它还在使用rails 2.3.2版本。但是rails命令也无法正常工作... - Lawrence DeSouza
1
我已经制作了逐步说明。让我知道它进行得如何。 - Mark Bolusmjak
是的!感谢 [rbenv install] 使得 rubygems 能够工作 - 然后 [gem install bundler] 非常有帮助。然而,我还有大约 4 或 5 个其他问题需要解决,包括将 [gem rdoc] 添加到 gemfile 中,安装一些其他必需的 gems,如 sqlite 等,最后降级 rubygems 版本以便使用 ./script/server start 运行 rails 2.3.2;但是经过所有这些之后它终于成功了!非常感谢。 - Lawrence DeSouza
对于那些仍然遇到这个问题的人,请先关闭终端,然后再尝试。这对我有用。 - justinpage

22

根据您安装的Rails版本,尝试使用以下代码。 在我的情况下,我正在使用v2.3.3

rbenv global 2.3.3

作为一个完全不熟悉 Ruby 的人,这是唯一对我有用的东西。 - joe
我必须这样做才能告诉rbenv使用哪个版本的ruby。插入使用rbenv install x.y[.z]安装的任何版本(在我的情况下是2.7.0)。现在,ruby -v按预期工作。 - randmin

2

即使设置全局或本地也无效,如果您没有设置这个。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
exec $SHELL

1

虽然上面有正确的答案,但对我来说不够清晰,因此请根据z5h和Thengugi的答案提供一个完整的总结作为答案。在以下设置和安装ruby之后(我安装了2.5.0):

rbenv install 2.5.0

您还需要将其设置为操作系统(例如CentOS)的默认版本:
rbenv global 2.5.0

0

我曾经遇到过同样的问题rbenv: ruby: command not found,最终通过删除rbenv-bundler插件来解决。这个插件被认为是有害的,删除它非常简单,只需运行rm -rf $RBENV_ROOT/plugins/bundler,然后运行rm -rf $(rbenv root)/shims && rbenv rehash


0

看起来你需要使用rbenv install安装你想要使用的Ruby版本,因为只有2.0.0-p353可用。请参考rbenv help


我以为它已经安装好了,看一下我的编辑,当我使用rbenv版本时。 - Lawrence DeSouza
你能分享你的 .rbenv-version 文件到指定目录吗? - Conner
它只有一行:1.9.1-p378。 - Lawrence DeSouza
请查看https://dev59.com/lmgu5IYBdhLWcg3w9ryX?rq=1 - Conner

0
请使用"rbenv global ruby-version" 将gem设置为全局。

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