我如何“激活”不同版本的特定gem?

我想在rails 2.3.10之间切换,作为我的操作系统的“活跃”gem,这样我就可以在命令行调用它了。

是否有可能做到这一点? 我没有使用rvm。 也许是时候开始了。

我试过gem install rails --version=2.3.10 ,但是这只是确保gem的版本已经安装了,不会放在/usr/bin/rails

(我已经为我的应用程序使用了打包程序,但是到目前为止,在操作系统级别上并不需要精确控制gem)

如果你的问题是运行某个版本的二进制文件,那么:

 rails --version # => the latest version rails _2.3.10_ --version # => Rails 2.3.10 

这种模式( gem-binary _gem-version_ )适用于任何gem二进制文件。

希望能帮助到你。

使用RVM

RVM允许您pipe理不同版本的Ruby和Gems。 例如,你可以安装一个Ruby版本

 rvm install 1.9.2 

您可以使用它:

 rvm use 1.9.2 

使用gemsets在每个项目基础上使用特定的gem。

如果你想要更多的命名空间,你可以设置gemset; 目录将包含特定项目的特定gem。

 rvm gemset create myproject 

那么你可以像这样使用它们:

 rvm use 1.9.2@myproject 

自动化

要自动执行切换gem的过程,请在项目根目录中input.ruby-version.ruby-gemset文件。 popup您想要使用的Ruby版本和gemset的名称,当您进入您的项目目录时,RVM将select正确的gemset。

在您的gem中安装gem

如果您正在使用捆绑器,请按照常规方式将您的gem安装到您的gem中:

 bundle install 

或者只是使用普通的旧的:

 gem install mygem 

gem会进入正确的gem。

RVM替代品

你可能也想看看rbenv,做类似的工作。

你可以使用RVM

然后,你也可以使用Bundler ,这可以很好地pipe理gem的依赖关系。

在你的Gemfile

 gem "rails", "2.3.10" 

并在你的应用程序

 require 'rubygems' require 'bundler/setup' 

你完成了。

编辑:刚才看到你的RVM在post中提到。 绝对要走的路。

您将要安装RVM – 这是一个了不起的软件包,可以让您在同一台机器上pipe理不同的Rubys和不同的gem集。 您可以轻松切换。

以下是安装指南: http : //rvm.beginrescueend.com/rvm/install/

一旦你得到了一切起来,你可以看到所有安装的Ruby在命令行与rvm list ,并切换与rvm use ruby-head ,例如。 RVM保持每个ruby分开的gem,这应该有助于你的问题。