[英]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的答案 。
使用bundle env
查看路徑和捆綁配置
在這個設置捆綁路徑到~/.rvm/gems/ruby-2.0.0-p247
像這樣:
bundle install --path ~/.rvm/gems/ruby-2.0.0-p247
這是全局的,您也可以使用自己的自定義路徑。
發布此bundle install
將永遠不再需要path
,並將始終在該directory(~/.rvm/gems/ruby-2.0.0-p247 in my case
安裝所有寶石directory(~/.rvm/gems/ruby-2.0.0-p247 in my case
為directory(~/.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.