995

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

4

7 回答 7

1290

使用-v标志:

$ gem install fog -v 1.8
于 2013-06-10T14:37:15.097 回答
235

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

$ gem install rails -v 0.14.1
…
Successfully installed rails-0.14.1

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

$ gem install rails -v '~> 0.14.0'
…
Successfully installed rails-0.14.4

使用较新版本的ruby​​gems,您可以加强您的要求:

$ gem install rails -v '~> 0.14.0, < 0.14.4'
…
Successfully installed rails-0.14.3

从现在开始,您还可以指定多个 gem 的版本:

$ gem install rails:0.14.4 rubyzip:'< 1'
…
Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

但这不适用于每个宝石超过一个比较器(目前)。

于 2014-12-19T10:07:34.130 回答
103

用于安装 gem install gemname -v versionnumber

用于卸载 gem uninstall gemname -v versionnumber

于 2017-01-26T08:14:45.080 回答
100

对于 Ruby 1.9+ 使用冒号。

gem install sinatra:1.4.4 prawn:0.13.0
于 2014-03-04T00:15:34.243 回答
25

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

如果您正在本地开发宝石,则在从 gemspec 中切割出宝石后:

$ gem install gemname-version.gem

假设版本 0.8,它看起来像这样:

$ gem install gemname-0.8.gem
于 2014-01-02T19:32:49.230 回答
11

您可以使用-vor--version标志。例如

gem install bitclock -v '< 0.0.2'

要指定上下版本边界,您可以指定--version标志两次

gem install bitclock -v '>= 0.0.1' -v '< 0.0.2'

或使用语法(例如)

gem install bitclock -v '>= 0.0.1, < 0.0.2'

另一种方法是

gem install bitclock:'>= 0.0.1'

但是对于最后一个选项,不可能同时指定上限和下限。

[宝石 3.0.3 和红宝石 2.6.6]

于 2020-10-10T02:22:32.197 回答
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

注意:您可以在它前面加上sudoifrvm已全局安装。或者,/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 身份运行命令,另一个 shell 中的另一个用户,因此当命令在 sudo 下运行时,RVM 为您完成的所有设置都将被忽略(例如 GEM_HOME 等)。因此,重申一下,一旦您“sudo”以 root 系统用户身份运行,这将清除您的环境以及它创建的任何文件,您的用户无法修改并导致奇怪的事情发生。

于 2014-06-11T09:50:05.073 回答