如何安装特定版本的红宝石宝石?


883

使用命令行gem工具,如何安装特定版本的gem?

Answers:


1156

使用-v标志:

$ gem install fog -v 1.8

59
如果像我一样,您先前已经安装了gem的更高版本,则必须使用来卸载更高版本gem uninstall fog。如果有多个版本,它将询问您要卸载哪个版本。
迪兹利,2014年

3
我有3个版本的rake:gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7)..我有一个Rails 2.3.5项目,另一个是我正在同时进行的3.0。线吗?)
大约

@abbood rake _10.1.1_ ...应该有用,对于任何想知道的人:)
Koen。

值得注意的是,这似乎并不影响可执行二进制文件。不过,卸载旧版本可用于二进制文件。
Ciro Santilli冠状病毒审查六四事件法轮功

再次希望我能做多次投票。也许他们必须分开至少一年。:)
唐·布兰森

192

使用--version参数(快捷方式-v):

$ gem install rails -v 0.14.1

您也可以使用版本比较器,例如>=~>

$ gem install rails -v '~> 0.14.0'

甚至使用较新版本的gem

$ gem install rails:0.14.4 rubyzip:'< 1'

Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

这适用于〜>,但是如果您遇到'<0.9,> = 0.7'的情况怎么办?我尝试应用两个v参数,看起来好像第一个参数被忽略了。使用逗号分隔符甚至无法解析。我最终删除了超出要求的部分,并且碰巧安装了可接受的版本,但是拥有正式的解决方案会很好。
Joseph Coco 2015年

版本比较器~>代表什么?
Dragas

这意味着最后一个数字被允许增长(stackoverflow.com/questions/5170547/...
schmijos

93

用于安装 gem install gemname -v versionnumber

卸载 gem uninstall gemname -v versionnumber



24

正如其他人指出的那样,通常将-v标志用于gem install命令。

如果要在本地开发宝石,请从gemspec中切割宝石后:

$ gem install gemname-version.gem

假设版本为0.8,则如下所示:

$ gem install gemname-0.8.gem

3
好答案。我建议您尽管为标志“ -v”选项添加另一个代码块。当我看到答案时,他们立即转到代码块,而不是周围的文本。如果其他人也这样做,他们将错过“ -v”部分。
CamHart

8

的Linux

要安装其他版本的ruby,请使用apt以下方法检查软件包的最新版本:

$ apt-cache madison ruby
      ruby |    1:1.9.3 | http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages
      ruby |        4.5 | http://ftp.uk.debian.org/debian/ squeeze/main amd64 Packages

然后安装它:

$ sudo apt-get install ruby=1:1.9.3

要检查当前版本是什么,请运行:

$ gem --version # Check for the current user.
$ sudo gem --version # Check globally.

如果版本仍旧,您可以尝试使用ruby版本管理器(rvm)将版本切换为新版本:

rvm 1.9.3

注意:sudo如果rvm在全局范围内安装,则可以添加前缀。/usr/local/rvm/scripts/rvm如果您的命令rvm不在global中,请运行PATH。如果rvm安装过程失败,请参阅故障排除部分。


故障排除:

  • 如果您仍然使用旧版本,则可以尝试通过以下方式安装rvm(ruby版本管理器):

    sudo apt-get install curl # Install curl first
    curl -sSL https://get.rvm.io | bash -s stable --ruby # Install only for the user.
    #or:# curl -sSL https://get.rvm.io | sudo bash -s stable --ruby # Install globally. 

    然后,如果在本地安装(仅针对当前用户),请通过以下方式加载rvm:

    source /usr/local/rvm/scripts/rvm; rvm 1.9.3

    如果是全局(对于所有用户),则:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • 如果您仍然对新的ruby版本有问题,请尝试通过rvm通过以下方式安装它:

    source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3 # Locally.
    sudo bash -c "source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3" # Globally.
  • 如果您想在全球范围内安装一些gems,并且已经安装了rvm,则可以尝试:

    rvmsudo gem install [gemname]

    代替:

      gem install [gemname] # or:
      sudo gem install [gemname]

注意:最好不要使用sudo来处理RVM gem。当您执行sudo时,您将以root用户身份运行命令,另一个外壳中的另一个用户,因此,当命令在sudo下运行时,RVM为您完成的所有设置都将被忽略(例如GEM_HOME等)。重申一下,以“ sudo”身份运行时,您将以root用户身份运行,这将清除您的环境以及它创建的任何文件,而用户将无法对其进行修改,并会导致发生奇怪的事情。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.