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

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

539788 次浏览

使用-v标志:

$ gem install fog -v 1.8

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

如果你正在本地开发一个宝石,在从你的geemspec中切割一个宝石后:

$ gem install gemname-version.gem

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

$ gem install gemname-0.8.gem

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

gem install sinatra:1.4.4 prawn:0.13.0

Linux

要安装不同版本的ruby,请使用apt检查最新版本的包,如下所示:

$ apt-cache madison rubyruby |    1:1.9.3 | http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packagesruby |        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不在全局PATH中,则运行/usr/local/rvm/scripts/rvm。如果rvm安装过程失败,请参阅故障排除部分。


解决方法:

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

    sudo apt-get install curl # Install curl firstcurl -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"
  • if you still having problem with the new ruby version, try to install it by rvm via:

    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.
  • if you'd like to install some gems globally and you have rvm already installed, you may try:

    rvmsudo gem install [gemname]

    而不是:

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

Note: It's prefered to NOT use sudo to work with RVM gems. When you dosudo you are running commands as root, another user in another shelland hence all of the setup that RVM has done for you is ignored whilethe command runs under sudo (such things as GEM_HOME, etc...). So toreiterate, as soon as you 'sudo' you are running as the root systemuser which will clear out your environment as well as any files itcreates are not able to be modified by your user and will result instrange things happening.

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

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

$ 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.4Successfully installed rubyzip-0.9.9

但这并不适用于每个gem超过一个比较器(还)。

安装gem install gemname -v versionnumber

卸载gem uninstall gemname -v versionnumber

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

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

[gem 3.0.3和ruby 2.6.6]