您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.0
Posted
技术标签:
【中文标题】您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.0【英文标题】:Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0 【发布时间】:2014-05-27 04:46:41 【问题描述】:当我尝试捆绑安装时,我收到以下消息:
Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0
在我的 Gemfile 中,我有以下内容:
ruby '2.1.0'
当我在控制台中运行ruby -v
时,我得到:
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]
Ruby 2.1.0p0 是什么意思?我的 Gemfile 中应该有什么版本,为什么错误告诉我我有 Ruby 版本 2.0.0?
【问题讨论】:
你使用什么 ruby 版本管理器 rvm 或 rbenv? 在项目目录中添加.rvmrc
和 rvm use 2.1.0 > /dev/null
。这个 swith ruby 版本。
这是做什么的?我在我的项目目录中添加了一个名为.rvmrc
的文件并将其放入rvm use 2.1.0 > /dev/null
。不幸的是,当我运行 bundle install 时,我仍然收到相同的消息:Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0
运行 rvm list
以查看已安装的 ruby 版本。
并运行 gem install bundler
或 gem update bundler
这可能会解决您的问题。
【参考方案1】:
只需关闭我正在使用的终端并打开一个对我有用的新终端。有时,更新不会立即生效,直到会话关闭。我发现这是我遇到的许多 Rails 错误的情况。
【讨论】:
【参考方案2】:我打开 Gemfile 并将 2.7.1
替换为我自己的 ruby 版本 2.7.0
现在一切正常。
【讨论】:
【参考方案3】:我通过将我的 ruby 版本更新为 ruby '2.4.0'
解决了这个问题
然后bundle install
【讨论】:
【参考方案4】:如果您使用的是 rbenv,只需运行
rbenv local 2.0.0
然后
bundle install
【讨论】:
【参考方案5】:这个问题的主要原因是你的机器和 gemfile 使用了不同的 ruby 版本
所以这个问题有多个问题和解决方案,您可以一一尝试以下解决方案
1- 如果您的机器不使用相同版本的 gemfile,请确保您的机器安装并使用相同版本的 gemfile 尝试使用 rvm 安装此版本
$ rvm install ruby_version_you_want
使用此命令确保版本安装成功
$ rvm list
如果新版本没有设置为默认值,您可以使用此命令进行设置
$ rvm --default use ruby_version_you_want
你可以查看当前的 ruby 版本
$ rvm current
$ ruby -v
2- 如果您有同样的问题,请检查您的捆绑器
$ gem install bundler
or
$ gem update bundler
3- 在某些情况下 spring 仍然使用旧版本,所以你需要停止它
$ ./bin/spring stop
4- 你可以输入另一种情况
$ gem pristine --all
并尝试再次安装 bundle
5- 在某些情况下,在安装更新的 ruby 版本后,您只需要重新启动终端即可。
6- 另一个解决方案,但我不推荐它作为您项目的***目录,创建一个名为 .ruby-version 的文件,其中包含您正在运行的 ruby 版本
7- 如果您仍然遇到此问题,请尝试删除 ruby 并仅安装更新版本
$ aptitude purge ruby
【讨论】:
【参考方案6】:我在一些非常相似的东西上苦苦挣扎,只是版本不同。我终于通过转到RubyGems 并将最新版本的 bundler 放入我的 gemfile 来修复它,目前是:
gem 'bundler', '~> 2.1', '>= 2.1.4'
还是有问题,不过之后我跑了:
gem update --system
它还解决了 rails 项目文件夹中混合版本的 Ruby。在执行此操作之前,您可能必须重新启动终端。另外,我注释掉了 bundler gem 文件,看来 gem update --system 命令才是真正解决它的原因。
我从here得到它:
【讨论】:
【参考方案7】:有同样的错误。执行以下操作修复了它。我使用的是 ruby 2.5.5 和 rbenv。从 2.5.1 升级。
rbenv 重新散列 gem 卸载捆绑器 gem 安装捆绑器 gem install bundler:1.17.3(我的应用需要特定的 bundler -v 1.17.3) gem 安装导轨【讨论】:
【参考方案8】:没有其他建议对我有用。在服务器上,我必须这样做:
rvm --default use [correct version number]
【讨论】:
【参考方案9】:以上答案都不适合我,但是
$ gem pristine --all
帮我搞定了
幸运儿
【讨论】:
【参考方案10】:当您安装新版本的 ruby 并将 .ruby-version 和 Gemfile 更新到新版本时,可能会发生这种情况,而没有先为新版本的 ruby 安装所有 gem。也一样
$ bundle install
您可能还需要获取 .profile 或重新启动您的 shell。
【讨论】:
【参考方案11】:brew cleanup ruby
为我工作,因为我使用 HomeBrew 安装 Ruby。
我最近通过 HomeBrew 更新了 Ruby,但 HomeBrew 没有删除旧版本。 brew cleanup ruby
将删除旧版本的 Ruby。
【讨论】:
【参考方案12】:感谢您提供有关安装/更新捆绑程序的信息,但它对我不起作用。
我不得不做rbenv rehash
【讨论】:
这个,在 Thiemo 的回答之前,在 Ubuntu 上为我工作。【参考方案13】:我遇到了错误消息
Your Ruby version is 2.5.1, but your Gemfile specified 2.3.0
并通过以下步骤解决:
-
打开位于您目录中的 Gemfile。
将
ruby '2.3.0'
更改为 ruby '2.5.1'
并保存 Gemfile
返回项目并运行捆绑更新。
问题完美解决。
【讨论】:
这不是解决方案。这是一种解决方法。如果代码强制要求2.3.0
版本怎么办。
只更改项目所需的 ruby 版本是一个糟糕的主意。许多事情可能会停止工作。开发者需要使用项目的ruby版本。【参考方案14】:
对我来说,没有一个答案有帮助。我修复了它关闭并再次打开终端。
【讨论】:
这也适用于我,但请记住,这是因为我们所在的终端窗口加载了某种不同的源。我们的默认来源碰巧有效。【参考方案15】:如果您使用 rbenv 管理您的 ruby 环境,您可以在项目目录中运行 rbenv local 2.1.0
来设置您的 gemfile 要求的 ruby 版本。
【讨论】:
【参考方案16】:确保您的服务器配置指向正确的 ruby 安装。
我已经在 .ruby-version
文件中更新了我的 Ruby 版本,但这并没有解决问题。 ruby -v
也显示了正确的版本,但我忘记更新我的服务器配置。
例如,对于我的 nginx 服务器块中的 rbenv、NGINX 和 Pushion Passenger:passenger_ruby /Users/myusername/.rbenv/versions/2.3.1/bin/ruby;
我需要更改为...passenger_ruby /Users/myusername/.rbenv/versions/2.3.3/bin/ruby;
然后重启 NGINX 就可以了。
【讨论】:
【参考方案17】:我在使用ruby-install 升级后得到了这个。修复了这个问题:
gem install bundler
接着是:
$HOME/.rubies/ruby-2.4.1/bin/bundle
不需要指定路径,因为which bundle
表示它已经在使用该路径。但是如果在没有路径的情况下运行bundle
,它会给出版本错误。不知道为什么?
【讨论】:
【参考方案18】:如果您使用 Capistrano,您还应该检查您的 deploy.rb
文件中的 set :rbenv_ruby
配置。
【讨论】:
或者这可能在 Capfile 中【参考方案19】:对于更高级的项目,支持 .versions.conf,其中可以指定 Ruby 版本以外的版本。
生成 .versions.conf:
rvm --create --versions-conf use 1.9.3@my_app
.versions.conf 示例:
ruby=jruby-1.6.8
ruby-gemset=my_app
env-JRUBY_OPTS=--1.9
【讨论】:
【参考方案20】:如果您在 Rails 项目中遇到此问题,并且您最近升级了 Ruby 版本,您可能有 spring 仍在运行旧版本的 Ruby。
./bin/spring stop
会解决这个问题。
【讨论】:
【参考方案21】:运行
gem install bundler
或
gem update bundler
这可能会解决您的问题。
对于所有新安装的 Ruby 版本,您应该更新或安装新的捆绑器。
【讨论】:
我遇到了完全相同的问题,但这并没有为我解决。您能否详细说明为什么这会起作用?安装 bundler 后,我仍然得到Your Ruby version is 2.0.0, but your Gemfile specified 2.0.0-p645
。 rbenv
甚至没有有 2.0.0。
哈哈。这甚至适用于我的 2.0.0 与 2.2.4 问题,尽管我在更新捆绑程序时收到了 Nothing to update
消息。 ¯_(ツ)_/¯
遇到了同样的问题,我的 gemfile 指定了 2.2.2,我也有一个 .ruby-version 文件。 rvm info
还给了我 2.2.2 - gem update bundler 修复了错误:) 不必与 rbenv
混淆。
如果您刚刚安装了该版本,重新启动您的 shell 也可能会有所帮助。
也收到了Nothing to update
消息,但gem update bundler
立即生效。【参考方案22】:
在项目的***目录中,创建一个名为.ruby-version
的文件,其中包含(等待...)
2.1.0
这显然是现在指定版本的 cross-rbenv,rvm
方式。
【讨论】:
以上是关于您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.0的主要内容,如果未能解决你的问题,请参考以下文章
错误 Ruby“您的 Ruby 版本是 3.0.2,但您的 Gemfile 指定了 2.7.1”
无法运行 rails 命令。您的 Ruby 版本是 2.2.1,但您的 Gemfile 指定了 2.1.4
如何解决“您的捆绑包仅支持平台 ["x86-mingw32"] 但您的本地平台是 ["ruby", "x86_64-linux"]"