繁体   English   中英

Ruby:如何安装特定版本的 ruby gem?

[英]Ruby: How to install a specific version of a ruby gem?

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

使用-v标志:

$ gem install fog -v 1.8

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

使用较新版本的rubygems,您可以收紧您的要求:

$ 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

但这不适用于每个宝石(还)一个以上的比较器。

用于安装gem install gemname -v versionnumber

对于卸载gem uninstall gemname -v versionnumber

对于 Ruby 1.9+ 使用冒号。

gem install sinatra:1.4.4 prawn:0.13.0

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

如果您在本地开发 gem,在从您的 gemspec 切割 gem 之后:

$ gem install gemname-version.gem

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

$ gem install gemname-0.8.gem

您可以使用-v--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]

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

在安装之前,您可以使用 list 命令检查可用版本。

gem list ^[gemname]$ --remote --all
gem install [gemname] -v [version]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM