簡體   English   中英

為什么Bundle Install是在vendor / bundle中安裝gem?

[英]Why Bundle Install is installing gems in vendor/bundle?

每當我進行bundle install所有的寶石都安裝在

app_dir/vendor/bundle

路徑並消耗大量磁盤空間。 我也嘗試安裝寶石,它應該安裝,即寶石集,而開發由此:

bundle install --no-deployement

但這不適合我並在vendor/bundle安裝gem。 如何讓它全局安裝在所有應用程序或ruby gemsets位置? 我也嘗試刪除.bundle/config但沒有改變。

我在用:

rvm version: 1.23.14
ruby version: 2.0.0-p247
rails 3.2.13

這是我的~/.bash_profile

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
eval "$(rbenv init -)"
alias pg='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log'

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

我的~/.bashrc

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

您可能需要的其他一些信息:

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ which bundle
/Users/aman/.rvm/gems/ruby-2.0.0-p247@global/bin/bundle

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv which bundle
/Users/aman/.rbenv/versions/2.0.0-p247/bin/bundle

amandeep@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv which ruby
/Users/aman/.rbenv/versions/2.0.0-p247/bin/ruby

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv gemset active
rbenv: NO such command `gemset'

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ which rails
/Users/aman/.rvm/gems/ruby-2.0.0-p247@global/bin/rails

我也嘗試了這個,但沒有幫助:

bundle install --system

並刪除.bundle目錄。

請幫我在gemsets而不是vendor/bundle或默認位置安裝gem。

在項目文件夾中,您將擁有.bundle目錄,該目錄包含bundler配置。 嘗試刪除該文件夾。 它應該將您的寶石的安裝路徑重置回系統范圍的設置。

在您只想編輯安裝路徑的情況下,使用您喜歡的編輯器打開.bundle/config應該會顯示vendor/bundle的路徑。 刪除該行會將其恢復為默認值而不刪除您可能擁有的其他配置。

另外,另一種不太常見的情況是您的系統范圍設置被搞砸了。 根據@NaoiseGolden的說法:

我不得不從我的Home文件夾中刪除.bundle (rm -rf~ / .bundle)。 您可以查看運行bundle env配置

嘗試安裝使用

bundle install --system

我認為最初捆綁安裝是使用--path標志運行的,捆綁器現在記得那個配置。

從bundler 手冊頁

在對bundle install的調用和Bundler運行時之間會記住一些選項。

對bundle install的后續調用將gems安裝到最初傳遞給--path的目錄中。 Bundler運行時將在該位置查找gem。 您可以通過運行bundle install --system來恢復此選項。

編輯 :正如下面的評論中提到的,以及其他方面,這將安裝寶石系統。 如果您使用rvm等來管理不同應用程序的環境,請查看上面提到的@ IuriG的答案

  1. 使用bundle env查看路徑和捆綁配置

  2. 在這個設置捆綁路徑到~/.rvm/gems/ruby-2.0.0-p247像這樣:

     bundle install --path ~/.rvm/gems/ruby-2.0.0-p247 

    這是全局的,您也可以使用自己的自定義路徑。

  3. 發布此bundle install將永遠不再需要path ,並將始終在該directory(~/.rvm/gems/ruby-2.0.0-p247 in my case安裝所有寶石directory(~/.rvm/gems/ruby-2.0.0-p247 in my casedirectory(~/.rvm/gems/ruby-2.0.0-p247 in my case ),該應用程序不在app_folder/vendor/bundle

嘗試運行bundle env 這將告訴您路徑配置的設置位置。

首先,根據您的信息,您似乎已經安裝了rvm和rbenv。 這是一個非常糟糕的主意 你必須刪除其中一個(rbenv + bundler對我來說就像一個魅力,沒有嘗試rvm)。

關於你的問題檢查項目中的.bundle/config ,因為捆綁到該項目的所有配置都在那里(如果它仍然被刪除,你可以創建一個新的)。 你想要添加這一行(或者更改它,如果它已經存在): BUNDLE_DISABLE_SHARED_GEMS: '0'用於共享寶石,它們會在你的BUNDLE_PATH:設置的位置( BUNDLE_PATH: vendor在我的情況下)。

對於全局配置文件,請查看~/.bundle/config

此手冊頁也可以使用: bundle config

要在系統范圍內安裝Gem避免路徑供應商/包,只需在項目目錄中運行以下命令即可

bundle install --system

暫無
暫無

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

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