我有两个版本的红宝石宝石。
json (default: 2.0.2, 1.8.6)
这里,最新版本设置为默认值;但是我需要将json 1.8.6
设置为默认值。反正有没有将旧版本的宝石作为默认版本?我无法卸载默认的json版本。需要在可用的gem版本之间切换。
检查你有什么:
gem list json
设置你想要的那个:
gem install --default -v1.8.6 json
这对于像“捆绑”这样的东西最有用!!!对于其他事情,使用bundler和Gemfile可能是更好的选择。
加
gem 'json', '1.8.6'
你的Gemfile
或执行
gem install 'json' -v 1.8.6 # may require sudo if you use system ruby
从终端。
Gemfile
是必须的,但还不够。你也应该改变这条线
require 'json'
至
require 'bundler/setup'
Bundler.require :default
这将需要你的Gemfile
中指定的所有宝石没有group
。
添加你的Gemfile
gem 'json', '1.8.6'
现在在命令行中运行它
bundle update
这应该设置您需要的版本
由于您使用RVM来管理Ruby版本,正如您在评论中所述,有一个简单的解决方案:为此应用程序创建一个私有捆绑包,并仅安装此捆绑包中所需的gem版本。
你可以这样做:
1)输入您的申请目录;
2)键入以下命令
rvm use ruby-2.4.0@your_app_name --ruby-version --create
(我假设您使用的是Ruby 2.4.0。如果这不是您的版本,请在上面的命令中相应地替换它。)
3)安装bundler gem
gem install bundler
4)确保你的Gemfile声明你需要的gem版本。在这种情况下,它必须具有以下行:
gem "json", "1.8.6"
5)现在运行
bundle install
你完成了!
警告:此过程将确保json gem
将为1.8.6版。但是如果你安装的其他宝石需要更新版本的bundle install
,你可能会遇到json gem
问题。在这种情况下,您将不得不以其他方式解决此冲突。
要了解有关不同应用程序的不同软件包的更多信息,请阅读this。
我希望这有帮助。