我有两个版本的ruby gem。
json (default: 2.0.2, 1.8.6)
这里,最新版本被设置为默认;但是我需要将json 1.8.6设置为默认值。是否有任何方法将旧版本的gem设置为默认值?因为我无法卸载默认的json版本。需要在可用的gem版本之间切换。
json 1.8.6
jfewjypa1#
检查您拥有的内容:
gem list json
设置你想要的:
gem install --default -v1.8.6 json
这对于像“bundler”这样的东西最有用!!!对于其他东西,使用bundler和一个Gemfile可能是一个更好的选择。
djmepvbi2#
加
gem 'json', '1.8.6'
到您的Gemfile或执行
Gemfile
gem install 'json' -v 1.8.6 # may require sudo if you use system ruby
从终端。
56lgkhnf3#
Gemfile是必须的,但还不够。您还应该更改行
require 'json'
到
require 'bundler/setup' Bundler.require :default
这将需要您的Gemfile中指定的所有gem,而不需要group。
group
2cmtqfgy4#
将此添加到您的Gemfile
现在在命令行中运行这个命令
bundle update
这应该设置您需要的版本
busg9geu5#
因为你使用RVM来管理你的Ruby版本,正如你在评论中所说的,有一个简单的解决方案:为这个应用程序创建一个私有包,并在这个包中只安装你需要的gem版本。这是你可以做到的:1)输入应用程序的目录;2)键入以下命令
rvm use ruby-2.4.0@your_app_name --ruby-version --create
3)安装bundler gem
gem install bundler
4)确保你的Gemfile声明了你需要的gem版本。在这种情况下,它必须有这样一行:
gem "json", "1.8.6"
5)快跑
bundle install
你完了!
**警告:**此过程将确保json gem的版本为1.8.6。但如果安装的其他gem需要更新版本的json gem,则您的bundle install可能会出现问题。在这种情况下,您必须通过其他方式解决此冲突。
json gem
要了解有关不同应用程序的不同捆绑包的更多信息,请阅读this。希望这能帮上忙。
pkln4tw66#
您可以手动将相关.gemspec文件从lib\ruby\gems\3.2.0\specifications\default\到lib\ruby\gems\3.2.0\specifications\取消将gem标记为默认值。
.gemspec
lib\ruby\gems\3.2.0\specifications\default\
lib\ruby\gems\3.2.0\specifications\
ryevplcw7#
背景:从CLI运行简单的Ruby测试ruby -I test test/controllers/api_controller_test.rb错误:您已经激活了json 2.0.2,但您的Gemfile需要json 1.8.6。由于json是默认的gem,您可以删除对它的依赖,或者尝试更新到支持json作为默认gem的较新版本的bundler。(Gem::LoadError)解决方法是简单地使用bundle exec运行测试,如下所示:bundle exec ruby -I test test/controllers/api_controller_test.rb
ruby -I test test/controllers/api_controller_test.rb
bundle exec ruby -I test test/controllers/api_controller_test.rb
7条答案
按热度按时间jfewjypa1#
检查您拥有的内容:
设置你想要的:
这对于像“bundler”这样的东西最有用!!!对于其他东西,使用bundler和一个Gemfile可能是一个更好的选择。
djmepvbi2#
加
到您的
Gemfile
或执行从终端。
56lgkhnf3#
Gemfile
是必须的,但还不够。您还应该更改行到
这将需要您的
Gemfile
中指定的所有gem,而不需要group
。2cmtqfgy4#
将此添加到您的Gemfile
现在在命令行中运行这个命令
这应该设置您需要的版本
busg9geu5#
因为你使用RVM来管理你的Ruby版本,正如你在评论中所说的,有一个简单的解决方案:为这个应用程序创建一个私有包,并在这个包中只安装你需要的gem版本。
这是你可以做到的:
1)输入应用程序的目录;
2)键入以下命令
3)安装bundler gem
4)确保你的Gemfile声明了你需要的gem版本。在这种情况下,它必须有这样一行:
5)快跑
你完了!
**警告:**此过程将确保
json gem
的版本为1.8.6。但如果安装的其他gem需要更新版本的json gem
,则您的bundle install
可能会出现问题。在这种情况下,您必须通过其他方式解决此冲突。要了解有关不同应用程序的不同捆绑包的更多信息,请阅读this。
希望这能帮上忙。
pkln4tw66#
您可以手动将相关
.gemspec
文件从lib\ruby\gems\3.2.0\specifications\default\
到
lib\ruby\gems\3.2.0\specifications\
取消将gem标记为默认值。
ryevplcw7#
背景:
从CLI运行简单的Ruby测试
ruby -I test test/controllers/api_controller_test.rb
错误:
您已经激活了json 2.0.2,但您的Gemfile需要json 1.8.6。由于json是默认的gem,您可以删除对它的依赖,或者尝试更新到支持json作为默认gem的较新版本的bundler。(Gem::LoadError)
解决方法是简单地使用bundle exec运行测试,如下所示:
bundle exec ruby -I test test/controllers/api_controller_test.rb