2013-07-23 104 views
5

在軌道上使用RVM與紅寶石,當我做bundle install它顯示了一大堆寶石比我在做gem list?與rvm有什麼關係,以及它使用的路徑是什麼?Rvm和寶石,捆綁顯示和寶石列表

捆綁安裝

[email protected]:~/staging$ bundle 
Using rake (0.9.6) 
Using Ascii85 (1.0.1) 
Using Platform (0.4.0) 
Using open4 (1.3.0) 
Using POpen4 (0.1.4) 
Using activesupport (2.3.17) 
Using rack (1.1.6) 
Using actionpack (2.3.17) 
Using actionmailer (2.3.17) 
Using activerecord (2.3.17) 
Using activeresource (2.3.17) 
Using acts_as_audited (1.1.1) 
Using addressable (2.2.8) 
Using builder (3.0.0) 
Using gyoku (1.0.0) 
Using nokogiri (1.5.6) 
Using akami (1.2.0) 
Using ar-extensions (0.9.5) 
Using cgi_multipart_eof_fix (2.5.0) 
Using chunky_png (1.2.5) 
Using cocaine (0.2.1) 
Using coderay (1.0.9) 
Using fssm (0.2.9) 
Using sass (3.1.18) 
Using compass (0.12.1) 
Using daemons (1.1.9) 
Using warden (0.10.7) 
Using devise (1.0.6) 
Using fastimage (1.2.13) 
Using html_compressor (0.0.3) 
Using rubyzip (0.9.8) 
more gems...... 
Your bundle is complete! 
It was installed into ./vendor/bundle 

寶石列表

[email protected]:~/staging$ gem list 

*** LOCAL GEMS *** 

actionmailer (2.3.17) 
actionpack (2.3.17) 
activerecord (2.3.17) 
activeresource (2.3.17) 
activesupport (2.3.17) 
bundler (1.3.5) 
bundler-unload (1.0.1) 
daemon_controller (1.1.4) 
fastthread (1.0.7) 
passenger (3.0.19) 
rack (1.5.2, 1.1.6) 
rails (2.3.17) 
rake (10.1.0) 
rubygems-bundler (1.2.2) 
rvm (1.11.3.8) 

回答

1

gem list之前,請確保您使用的應用程序的寶石:

rvm use [email protected]_gemset 
gem list 

一定要重新將application_ruby與您的ruby版本字符串和application_gemset設置爲由您的導軌應用程序使用的gemset

+0

寶石列表仍然顯示不同的結果比捆綁安裝 – Francois

1

在目錄的根目錄中有一個名爲.bundle的隱藏目錄。刪除它,然後再次運行包。

2

當您使用bundle install --deploymentbundle install --path=...出現這種情況,產生.bundle/config像這樣的東西:

--- 
BUNDLE_FROZEN: '1' 
BUNDLE_PATH: vendor/bundle 
BUNDLE_DISABLE_SHARED_GEMS: '1' 

它可以通過你的某位同事或捆綁/ Capistrano的整合來完成:

  1. 如果是你的同事那麼只是刪除並忽略它:

    rm -rf .bundle 
    echo '.bundle' >> .gitignore 
    
  2. 爲Capistrano的rvm-capistrano介紹如何禁用它=>https://github.com/wayneeseguin/rvm-capistrano#disabling-bundle---deployment-when-using-gemsets

0

根據bundler documentation當前默認,在OPS情況下,可能已被設置爲供應商/束,例如通過將優先執行bundle install --path vendor/bundle

而且束命令或調用Bundler.setup或Bundler.require 會記住這個位置

還要檢查$ BUNDLE_PATH的內容,這表明它的安裝位置。注意:也可以通過--deployment選項將其安裝到供應商/軟件包。見Deplyment mode 3.

作爲回答heregem list將只顯示寶石使用--system選項安裝(見接受的答案和卡斯帕評論);改爲使用bundle list來顯示安裝在應用程序目錄中的寶石,即通過bundle install(不帶--system選項)。