Tan*_*Tan 56

您最好安装Ruby 2.2.5以获得兼容性.本地计算机中的Ruby版本与Gemfile中声明的版本不同.

如果你正在使用rvm:

rvm install 2.2.5
rvm use 2.2.5
Run Code Online (Sandbox Code Playgroud)

否则,如果你使用rbenv:

rbenv install 2.2.5
rbenv local 2.2.5
Run Code Online (Sandbox Code Playgroud)

否则,如果您无法通过rbenv更改ruby版本, 请阅读此处

  • 这些情况正是我总是建议人们为每个应用程序提供单独的捆绑包的原因。 (2认同)

mra*_*teb 19

有同样的问题。我正在使用rbenv并将which ruby显示 rbenv 版本:

/Users/Mahmoud/.rbenv/shims/ruby
Run Code Online (Sandbox Code Playgroud)

哪个捆绑包会显示:

/usr/local/bin/bundle
Run Code Online (Sandbox Code Playgroud)

在查看了每个可能的位置后,发现我的问题是除了~/.zshrc~/.bash_profile我最初进行更改的位置)之外我还需要更新路径

如果您正在运行 zsh,请在~/.zshrc(或等效文件)中添加这两行~/.bash_profile

export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)

保存后,退出终端并重新启动,然后重试。希望这会有所帮助。

  • 我只需要将 `export PATH="$HOME/.rbenv/shims:$PATH" eval "$(rbenv init -)"` 设置为 `~/.bash_profile` (2认同)

Tar*_*que 16

如果您已经安装了2.2.5并设置为当前ruby版本,但即使安装了Ruby版本2.3.0仍然显示相同的错误,那么只需安装捆绑器即可.

gem install bundler
Run Code Online (Sandbox Code Playgroud)

然后:

bundle install
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,在重新安装捆绑程序后,我还必须执行 `rbenv rehash`。 (7认同)
  • 就是这里!因为如果你在安装和设置你的 ruby​​ 版本之前安装了 bundler,调用 `bundle check` 或 `bundle install` 仍然会引用最初用于安装 `bundler` 的 ruby​​ 环境。干杯! (4认同)
  • 哇,我预计会出现缺少宝石的错误消息...无论如何,谢谢! (2认同)

小智 14

如果您使用的是rbenv,请确保在设置本地或全局ruby版本后运行"rbenv rehash"命令.它为我解决了这个问题.

rbenv rehash
Run Code Online (Sandbox Code Playgroud)

  • 适用于 asdf 用户的“asdf reshim” (3认同)
  • 我意识到在“bundle install”和“rbenv rehash”之后您还需要关闭终端 (3认同)
  • @kahcv 我运行了 rbenv rehash 但仍然遇到相同的错误 (2认同)

Ed *_*ida 13

你的Gemfile有一个行读数

ruby '2.2.5'
Run Code Online (Sandbox Code Playgroud)

将其更改为

ruby '2.3.0'
Run Code Online (Sandbox Code Playgroud)

然后跑

bundle install
Run Code Online (Sandbox Code Playgroud)

  • 您的建议对我没有任何作用,但运行“gem update”为我修复了错误消息。 (2认同)
  • `.ruby-version` 也相关吗? (2认同)

Rut*_*ins 7

两个步骤对我有用:

gem install bundler

bundle install --redownload # Forces a redownload of all gems on the gemfile, assigning them to the new bundler
Run Code Online (Sandbox Code Playgroud)


小智 6

我遇到了这个问题,但我通过使用 RVM 安装 gem 文件中指定的 ruby​​ 版本解决了这个问题

    rvm install (ruby version)
Run Code Online (Sandbox Code Playgroud)

安装后,我使用以下命令来使用您安装的版本。

    rvm --default use (ruby version)
Run Code Online (Sandbox Code Playgroud)

您必须使用以下命令安装bundler才能使用最新版本

    gem install bundler 
Run Code Online (Sandbox Code Playgroud)

完成上述步骤后,您现在可以运行以下命令来安装 gemfile 上指定的 gem

    bundle install
Run Code Online (Sandbox Code Playgroud)


小智 6

我在 Mac 上使用 rbenv 遇到的一个问题是,当我第一次设置它时,它在 /usr/local/bin 中加载了一堆 ruby​​ 可执行文件 - 这些可执行文件加载了系统 ruby​​,而不是当前版本。

如果你跑

which bundle

它显示 /usr/local/bin/bundle 您可能遇到此问题。

搜索 /usr/local/bin 并删除以 #!/user/bin ruby​​ 开头的所有文件

然后运行

rbenv rehash