我如何使用RVM创build全球可用的gem?

我正在运行Mac OSX 10.6.4并安装了RVM。 到目前为止,它是非常棒的,我真的很喜欢它让我pipe理多个版本的rails和ruby在同一台机器上,而不会头疼!

但是,我不想为每个设置安装某些gem(例如乘客)。 有没有办法在gemsets之间分享gem? 我有一个1.8.7@rails2.3.8和1.9.2@rails3,我可以安装gem,如乘客,mysql和capistrano一次,并使用所有版本?

有一种叫做全局gemset的东西,它是在某个ruby版本的所有gemsset之间共享的。 但是你不能在ruby-versions之间分享gem。

然而,你可以做的是创build一个gem列表,将添加一个新的ruby版本时自动安装。 这在这里描述。 简而言之:编辑名为~/.rvm/gemsets/global.gems以包含每个ruby版本所需的gem列表。

希望能帮助到你。

使用最新的RVM版本(1.17.0和更新版本),只需键入:

rvm @global do gem install passenger

要么

rvm 1.9.3@global do gem install passenger如果您只需要一个特定版本的ruby,就可以rvm 1.9.3@global do gem install passenger

您可以使用以下命令创build和使用全局gemsets:

 rvm gemset create global rvm gemset use global 

在创build并执行全局gemset的用法之后,照常安装gems:

 gem install mysql passenger 

在“全局”rvm gemset名称中添加您想要的每个gemset的gem

 rvm 1.9.2@global 

那么项目特定的gemsets rvm 1.9.2@myProject已经让你成为你的全局列表中的“默认”gem

创build和使用一个全球性的gem:

 rvm use <ruby version>@global --create 

并安装gem你想分享之间的gem:

 bundle install <gem name> 

但是这些gem只能在同一个Ruby版本的gemsets之间共享。

根据RVM文档,实际上有一些“全局”gemset,可以在rvm级别,每个解释器,每个解释器版本以及每个解释器的特定补丁级别定义。 并从一个级别安装gem级联。