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

mjs*_*mjs 844 ruby gem

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

mjs*_*mjs 1105

使用-v标志:

$ gem install fog -v 1.8
Run Code Online (Sandbox Code Playgroud)

  • 如果像我一样,你以前安装了宝石的更高版本,那么你必须用例如`gem uninstall fog`卸载更高版本.如果您有多个版本,它会询问您要卸载哪个版本. (57认同)
  • 我有3个版本的rake:`gem list | grep rake` =`rake(10.1.1,10.1.0,0.8.7)`我有一个rails 2.3.5项目和另一个3.0我正在同时工作..我怎么用每个项目的特定版本的rake(即在命令行上?) (3认同)
  • 我可能每年都会搜索并找到一次,哈哈,这就是我使用它的频率,但是很棒! (2认同)

sch*_*jos 185

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

$ gem install rails -v 0.14.1
Run Code Online (Sandbox Code Playgroud)

您也可以使用>=或等版本比较器~>

$ gem install rails -v '~> 0.14.0'
Run Code Online (Sandbox Code Playgroud)

或者使用更新版本的gem甚至:

$ gem install rails:0.14.4 rubyzip:'< 1'
…
Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9
Run Code Online (Sandbox Code Playgroud)


Emj*_*jey 84

用于安装 gem install gemname -v versionnumber

用于卸载 gem uninstall gemname -v versionnumber


Kok*_*zzu 75

对于Ruby 1.9+使用冒号..

gem install sinatra:1.4.4 prawn:0.13.0
Run Code Online (Sandbox Code Playgroud)


the*_*ore 23

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

如果你在gemspec切割宝石后在本地开发宝石:

$ gem install gemname-version.gem
Run Code Online (Sandbox Code Playgroud)

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

$ gem install gemname-0.8.gem
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案.我建议您为标志"-v"选项添加另一个代码块.当我的眼睛读到答案时,他们立即转到代码块而不是围绕它的文本.如果其他人也这样做,他们会错过"-v"部分. (3认同)

Mae*_*tor 11

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

gem install bitclock -v '< 0.0.2'
Run Code Online (Sandbox Code Playgroud)

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

gem install bitclock -v '>= 0.0.1' -v '< 0.0.2'
Run Code Online (Sandbox Code Playgroud)

或使用语法(例如)

gem install bitclock -v '>= 0.0.1, < 0.0.2'
Run Code Online (Sandbox Code Playgroud)

另一种方法是

gem install bitclock:'>= 0.0.1'
Run Code Online (Sandbox Code Playgroud)

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

[宝石 3.0.3 和红宝石 2.6.6]


ken*_*orb 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
Run Code Online (Sandbox Code Playgroud)

然后安装它:

$ sudo apt-get install ruby=1:1.9.3
Run Code Online (Sandbox Code Playgroud)

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

$ gem --version # Check for the current user.
$ sudo gem --version # Check globally.
Run Code Online (Sandbox Code Playgroud)

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

rvm 1.9.3
Run Code Online (Sandbox Code Playgroud)

注意:您可以在全局安装sudoif 前缀rvm./usr/local/rvm/scripts/rvm如果您的命令rvm不在您的全局中,请运行PATH.如果rvm安装过程失败,请参阅故障排除部分.


故障排除:

注意:最好不要使用sudo来处理RVM gems.当您执行sudo时,您正在以root身份运行命令,另一个用户在另一个shell中运行,因此当命令在sudo下运行时(例如GEM_HOME等等),RVM为您完成的所有设置都将被忽略.所以重申一下,一旦你'sudo'你作为root系统用户运行,它将清除你的环境以及它创建的任何文件都不能被你的用户修改,并将导致奇怪的事情发生.