關於寶石安裝的快速問題 - 當我使用bundle install
我知道它安裝我個人項目所需的寶石,但它不會影響我的電腦上的其他項目。如果我使用gem install name_of_gem
那也只會影響當前項目,還是會影響我的計算機上使用rails(通用安裝)的所有項目?總的來說,我認爲我對gem安裝的工作原理有些困惑,所以如果你的答案可能包含一些一般背景信息來幫助我理解這將是非常棒的!導軌 - 寶石安裝
1
A
回答
1
是的,寶石通常安裝在系統範圍內,或者在您的主目錄下,這是不可能的。默認情況下,當您的應用程序使用gem時,RubyGems會加載最新安裝的版本。如果你想使用一個特定的版本RubyGems的讓你做與此語法:
require 'rubygems'
gem 'RedCloth', '3.0'
捆紮機是一個有用的工具,它跟蹤正在使用的開發項目寶石,的版本,然後讓你要一起安裝它們與bundle install
,並加載這些確切的版本。應用程序通過加載Bundler代碼加載它們,該代碼覆蓋部分RubyGems以使用Gemfile中指定的版本。
默認情況下,Bundler只是調用RubyGems來安裝gems(再次,系統範圍或在你的homedir中)。您可以通過使用bundle package
將它存儲在一個名爲vendor/cache
的目錄中。這可讓您「凍結」寶石,以便您可以將它們與源代碼一起分發。
如果你想進一步隔離你的Ruby環境,你應該使用RVM,它允許你設置獨立的gemset,事實上,不同版本的Ruby,可以用在不同的項目上。當您使用RVM時,RubyGems安裝事物的目錄將被覆蓋,並且特定於您當前的Ruby版本和gemset。
1
當你捆綁安裝寶石安裝在RubyGems的,除非你使用RVM併爲您的項目設置gemsets將可用於所有的項目。
當你不使用RVM和你做一個寶石安裝您的操作系統可能會在當前用戶的文件(通常〜/ .gem)安裝寶石,如果你sudo的安裝寶石它將安裝在您的系統Ruby安裝位置。
我真的會推薦你設置RVM來管理不同組的寶石和紅寶石。您可以閱讀上面鏈接的網站或a simple tutorial I wrote to use it。
相關問題
- 1. 導軌 - 耙:寶石:安裝 - 不安裝寶石
- 2. 無法安裝導軌寶石
- 3. 導軌無法加載安裝寶石
- 4. 缺少導軌寶石,redmine安裝
- 5. '寶石安裝'和'sudo寶石安裝'
- 6. 寶石安裝紅寶石
- 7. 安裝紅寶石寶石
- 8. 軌道4我不能安裝寶石
- 9. 安裝mongoid寶石在軌道4
- 10. 被困在安裝紅寶石軌道
- 11. 寶石安裝羅盤軌道誤差
- 12. 安裝軌與舊紅寶石
- 13. 如何從已安裝的紅寶石寶石檢測導軌版本
- 14. MySQL的寶石安裝失敗在紅寶石在導軌上的mac
- 15. 創建導軌3寶石:寶石安裝成功,但沒有功能
- 16. 無法安裝PG寶石OS X 10.11.6,導軌5,紅寶石2.3
- 17. 在軌道上安裝寶石,紅寶石。使用JSON錯誤
- 18. 寶石安裝
- 19. 紅寶石軌道:Rspec安裝指導和使用
- 20. 無法安裝rmagick,紅寶石1.9,導軌3,窗口
- 21. rmagick安裝在紅寶石和導軌中的錯誤
- 22. 嘗試從寶石安裝時導軌失敗1.9.2
- 23. 在窗戶上的導軌上安裝紅寶石
- 24. 如何安裝導軌2.3.8和1.8.7的紅寶石
- 25. 不能使用RVM安裝導軌5寶石
- 26. 爲了安裝RVM,紅寶石,創業板,導軌,劍聖
- 27. 無法在Ubuntu 14.0.4上安裝rails。寶石安裝導軌錯誤
- 28. 寶石安裝破損?
- 29. 耙寶石:安裝,如何防止安裝特定的寶石?
- 30. 無法安裝鶯紅寶石寶石
所以在我的情況下,一個項目使用Rake 0.9.2,我想切換到Rake 0.8.7。但是,我想保留在Rake 0.9.2中的第二個項目。如果我只是使用'gem uninstall rake -v = 0.9.2',然後使用'bundle update'在我指定rake 0.8.7的包中,這是否也會影響我的第二個依賴於rake 0.9.2的項目?如果是的話,我該如何解決這個問題? – Kvass
@Kvass:對於這種情況,RVM是一個不錯的選擇。如果你想,你可以在你的Gemfile中指定它,並使用'bundle exec rake'來代替(我相信這是有效的;沒有檢查過)。但是,Bundler用於依賴管理,而不是環境隔離。如果你想要後者,你應該使用RVM。幸運的是,RVM和Bundler一起工作得很好。 –
rvm在Windows上工作/我可以在哪裏找到使用它的Windows指南? – Kvass