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

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

答案

使用-v标志:

$ gem install fog -v 1.8

使用--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

要安装gem install gemname -v versionnumber

对于卸载gem uninstall gemname -v versionnumber

对于 Ruby 1.9+,请使用冒号。

gem install sinatra:1.4.4 prawn:0.13.0

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

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

$ gem install gemname-version.gem

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

$ gem install gemname-0.8.gem

的 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

注意:如果rvm是全局安装的,则可以使用sudo rvm前缀。如果您的命令rvm不在全局PATH ,请运行/usr/local/rvm/scripts/rvm 。如果 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 用户身份运行,这将清除您的环境以及它创建的任何文件,而该文件将无法被您的用户修改,并会导致发生奇怪的事情。