![](/img/trans.png)
[英]Why does 'bundle' install production gems on my development machine?
[英]Does 'bundle install' install all the required gems on my computer permanently?
我是Rails的新手,正在學習捆綁器。 我了解bundle install
會安裝gemfile中指定的所有gem,但是它將它們安裝到哪里?
它是否將它們永久安裝在我的計算機上,以便將來的任何項目都可以使用它們?
如果是這樣,這是否意味着我的計算機裝滿了我為一個示例項目所需的隨機gem版本和gem install,但可能永遠不會再使用?
默認情況下, bundle install
將在根級別進行安裝,因此計算機上的所有用戶都可以訪問gem。 因此,是的,它是永久的(至少不與您的應用程序綁定,您可以隨時刪除它們)。
看看捆扎機的手冊頁 。 在這里,您會注意到您可以指定安裝到本地目錄。
將依賴項(甚至是已經安裝到系統gem的gem)安裝到系統的gem庫以外的位置。 在這種情況下,請將它們安裝到供應商/捆綁銷售商。
$捆綁安裝-路徑供應商/捆綁
進一步的捆綁軟件命令或對Bundler.setup或Bundler.require的調用將記住該位置。
這樣您就可以將gems安裝到應用程序內的某個位置。 因此,當刪除示例應用程序時,您還將刪除關聯的gem。
另外,如果您想查看特定gem的安裝位置(例如,您想查看其源代碼),請鍵入bundle show <gemname>
。 這將吐出通往那顆寶石的道路。
簡短的回答是“是”。 更長的答案是,有些技術將減少或消除與此效應相關的問題。
如果安裝“ RVM”:
這將允許您安裝多個版本的Ruby並創建單獨的“ gemsets”。 當您輸入包含項目的目錄時,將自動獲取ruby版本和gemset設置,並且活動的Ruby版本將更改。 這樣,您就可以將項目之間的寶石分開-並同時使用多個Ruby版本,包括JRuby和其他深奧的版本。
要找出寶石的存儲位置,請輸入:
gem environment
進入命令行,然后在響應中查找INSTALLATION_DIRECTORY條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.