2011-04-25 213 views
5

我已經在供應商/緩存中有寶石的現有Rails 3應用上運行「bundle install」(我猜他們是通過「bundle package」打包的)和有效的Gemfile和Gemfile.lock文件。bundle install和RVM

我看到的是,它在我的主目錄中創建了一個文件夾.bundle。

我也使用RVM。當我嘗試「寶石列表」時,我沒有看到安裝了供應商/緩存中的任何寶石。

我做錯了什麼? Bundler文章說,執行「捆綁」或「捆綁安裝」將gem安裝在Gemfile和Gemfile.lock文件中。問題是否與RVM使用有關?

感謝您的任何建議。

+0

看用'RVM gemdir'返回的文件夾中。這就是他們的安裝位置。 – Zabba 2011-04-25 02:03:02

+0

但他們不在嗎?我應該執行以下操作:捆綁安裝'rvm gemdir'? – 2011-04-25 11:23:36

+1

基本上,bundler會創建一個dir結構,如下所示:ruby/1.8/{bin,cache,doc,gems,specifications}。我的問題是,如何使bundle安裝在相應的rvm ruby​​中創建這個dir結構,即放置bundle緩存。寶石和規格導入rvm ruby​​緩存,寶石和規格?有沒有辦法做到這一點? – 2011-04-25 12:05:01

回答

2

查看rvm env gemdir,還請根據寶石檢查您在.rvmrc中設置的內容。做bundle install,它應該得到所有的寶石。

查看.bundle通過執行$ cat .bundle來查看它的內容,並檢查它是否複製到寶貝vendor/ruby。只有在提供bundle install --path vendor/rubyRef)時纔會出現這種情況。

+2

我發現了這個問題。當你給一個arg捆綁安裝時,即使你是rm -rf這個目錄並且從頭開始用純粹的「捆綁安裝」,它仍然會在這個目錄中安裝gems。 – 2011-04-26 17:59:29

+1

確實。需要編輯'.bundle'以防止這種情況在將來的'bundle install'運行中生效。 – 2011-04-27 20:11:35

3

如Emil的評論所述,如果您提供參數bundle install,它將繼續在該目錄內安裝gem,即使您的目錄是rm -rf,並且純粹從bundle install開始。這個新目錄默認由捆綁軟件取得,它甚至取代您在.rvmrc文件中聲明的內容。

要刪除此約束,只需編輯.bundle/config文件,並刪除該文件中聲明BUNDLE_PATH,例如,

BUNDLE_PATH: /usr/local/lib/ 
+0

這是最後爲我做的。在'.bundle/config'中刪除該行後,它將所有內容都轉儲到我需要的相應'rvm'位置。 – 2015-11-26 14:06:06

相關問題