Rails Rbenv:rails:命令未找到。

36

我最近从 RVM 切换到了 Rbenv,但在尝试执行 Rails 时,出现了以下类似的错误:

Pauls-Air:~ $ rails
rbenv: rails: command not found

The `rails' command exists in these Ruby versions:
  2.1.2
8个回答

105
在安装 Ruby 版本的 gem 后,需要按照文档 这里这里 描述的那样,在命令行中执行 rbenv rehash 命令。
例如:
$ rbenv install 2.2.0
$ gem install bundler
$ rbenv rehash
$ gem install rails
$ rbenv rehash

这是第100个点赞。感谢你挽救了这一天! - Omar Tariq

12

你需要为每个Ruby版本在rbenv中安装Rails。尝试运行rbenv version,我预计2.1.2不是当前项目(本地版本)或全局版本中使用的Ruby版本。


1
是的,你说得对。那太疯狂了!如果RVM不需要做同样的事情,那就足以证明放弃rbenv并转向RVM是有道理的。有人知道吗? - user2101068

4

我遇到了同样的问题,但这些其他解决方案(或者其他地方找到的其他任何解决方案)都没有起作用。我正准备回到RVM,所以我决定完全摆脱rbenv,这为解决问题铺平了道路。

尝试以下方法-对我来说有效:

  1. uninstalling rbenv, remove all references rbenv in your bash profile, and remove the remaining rbenv file folder and its contents.

  2. Reinstall rbenv with homebrew.

  3. Add it back to your bash profile:

    export PATH="$HOME/.rbenv/bin:/usr/local/bin:$PATH"
    eval "$(rbenv init -)"
    
  4. Restart the shell:

    exec $SHELL -l
    
  5. Check the path:

    echo $PATH
    
  6. Install Rails:

    gem install rails
    
  7. rbenv rehash

注意:我在部分答案中参考了这个链接:https://www.codementor.io/tips/3732499178/solution-for-rbenv-rails-is-not-currently-installed-on-this-system-to-get-the-latest-version-simply-type 解释:本段文字是提示,说明作者在回答问题时参考了一个网页链接。

我发现卸载并重新安装rbenv可以解决这个问题。我不需要从.zshrc中删除rbenv特定的内容,但在通过homebrew卸载和重新安装rbenv之前,我手动删除了~/.rbenv。 - eebbesen

3

尝试在终端中运行以下命令,以使用2.1.2版本设置您的环境:

$ rbenv shell 2.1.2

对我来说有效。


2
例如,如果您想安装带有Rails 6的Ruby 2.5.3,请按照以下方式操作:-rbenv global 2.5.3 $ gem update --system $ rbenv install 2.5.3 $ rbenv global 2.5.3 $ gem install rails -v 6.0.2.2 $ ruby -v $ rails -v

1

对我来说,我使用列出的“这些Ruby版本中存在'rails'命令”来设置我的环境。

$ rbenv shell 2.1.2
$ rails -v

它有效。


你也可以将Rails添加到你想要使用的版本中:rbenv shell 2.7.1,然后运行gem install rails - stormdrain

1

确保你项目目录中的.ruby-version文件包含与使用rbenv安装的Ruby版本相同的版本。


0
问题在于您的全局 Ruby 版本与本地某个已安装版本不匹配,该版本为2.1.2。请尝试在 Bash shell 中任何位置执行以下命令:
rbenv global 2.1.2

这样rails就会在您的$HOME目录和其他任何地方被rbenv找到。

rbenv global

通过将版本名称写入~/.rbenv/version文件,设置要在所有shell中使用的Ruby全局版本。该版本可以被应用程序特定的.ruby-version文件或设置RBENV_VERSION环境变量覆盖。


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