[英]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.