如何将特定的gem版本设为默认版本?

问题描述 投票:13回答:5

我有两个版本的红宝石宝石。

json (default: 2.0.2, 1.8.6)

这里,最新版本设置为默认值;但是我需要将json 1.8.6设置为默认值。反正有没有将旧版本的宝石作为默认版本?我无法卸载默认的json版本。需要在可用的gem版本之间切换。

ruby-on-rails ruby rubygems
5个回答
6
投票

检查你有什么:

gem list json

设置你想要的那个:

gem install --default -v1.8.6 json

这对于像“捆绑”这样的东西最有用!!!对于其他事情,使用bundler和Gemfile可能是更好的选择。


2
投票

gem 'json', '1.8.6'

你的Gemfile或执行

gem install 'json' -v 1.8.6 # may require sudo if you use system ruby

从终端。


2
投票

Gemfile是必须的,但还不够。你也应该改变这条线

require 'json'

require 'bundler/setup'
Bundler.require :default

这将需要你的Gemfile中指定的所有宝石没有group


0
投票

添加你的Gemfile

gem 'json', '1.8.6'

现在在命令行中运行它

bundle update

这应该设置您需要的版本


0
投票

由于您使用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

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.