簡體   English   中英

如何使用 RVM 並創建全局可用的 gems?

[英]How do I use RVM and create globally available gems?

我正在運行 Mac OSX 10.6.4 並安裝了 RVM。 到目前為止它很棒,我真的很喜歡它讓我在同一台機器上管理多個版本的 rails 和 ruby​​ 的方式而不會頭疼!

但是,我不想為每個設置安裝某些 gem(例如乘客)。 有沒有辦法在寶石組之間共享寶石? 我有一個 1.8.7@rails2.3.8 和 1.9.2@rails3,我可以安裝一次諸如passenger、mysql和capistrano之類的gem並與所有版本一起使用嗎?

有一種叫做全局 gemset 的東西,它在某個 ruby​​ 版本的所有 gemset 之間共享。 但是您不能在 ruby​​ 版本之間共享 gem。

但是,您可以做的是創建一個 gem 列表,這些 gem 將在添加新的 ruby​​ 版本時自動安裝。 這是描述here 簡而言之:編輯一個名為~/.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​​。

您可以使用以下命令創建和使用全局 gemset:

rvm gemset create global
rvm gemset use global

創建並執行全局 gemset 后,只需像往常一樣安裝 gems:

gem install mysql passenger

在“全局”rvm gemset 名稱中為每個 gemset 添加您想要的 gems,即

rvm 1.9.2@global

然后項目特定的 gemsets rvm 1.9.2@myProject將已經擁有您全局列表中的“默認” gems

創建和使用全局 gem 為:

rvm use <ruby version>@global --create

並安裝要在 gemset 之間共享的 gem:

bundle install <gem name>

但是這些 gem 只能在相同 Ruby 版本的 gemset 之間共享。

根據 RVM 文檔,實際上有許多“全局” gemsets 可以在 rvm 范圍內定義,每個解釋器,每個解釋器版本,最后在每個解釋器的特定補丁級別。 並且安裝的寶石從一個級別級聯到下一個級別。

如果您需要在多個紅寶石上安裝特定的 gem,您可以執行以下操作:

rvm all do rvm @global do gem install passenger

對於想要手動觸發安裝 rvm global.gems

rvm gemset import ~/.rvm/gemsets/global.gems

# or

cat ~/.rvm/gemsets/global.gems | xargs gem install

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM