bundle install
を実行するたびに、すべてのgemがインストールされます
app_dir/vendor/bundle
パスとディスク領域の負荷を消費します。これにより、開発中にgemsetsをインストールするgemをインストールしようとしました:
bundle install --no-deployement
しかし、これは私にとっては機能せず、vendor/bundle
にgemをインストールします。すべてのアプリケーションまたはRuby gemsets location)にグローバルにインストールできるようにするにはどうすればよいですか?.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
ディレクトリを削除します。
vendor/bundle
やデフォルトの場所ではなくgemsetにgemをインストールするのを手伝ってください。
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
にないアプリのapp_folder/vendor/bundle
)にすべてのgemを常にインストールします
プロジェクトフォルダには、bundler
の構成を保持する.bundle
ディレクトリがあります。そのフォルダを削除してみてください。 gemのインストールパスをシステム全体の設定にリセットする必要があります。
インストールパスを編集するだけの場合、お気に入りのエディターで.bundle/config
を開くと、vendor/bundle
へのパスが表示されます。その行を削除すると、他の設定を削除せずにデフォルトに復元します。
また、もう1つの頻度の低いシナリオは、システム全体の設定が台無しになっていることです。 @NaoiseGoldenによると:
ホームフォルダーから
.bundle
を削除する必要がありました(rm -rf〜/ .bundle)。bundle env
を実行している設定を確認できます
を使用してインストールしてみてください
bundle install --system
当初、バンドルのインストールは--path
フラグを使用して実行され、Bundlerはその設定を記憶するようになったと思います。
バンドラーから manページ
バンドルインストールの呼び出しとBundlerランタイムの間にいくつかのオプションが記憶されます。
バンドルインストールの後続の呼び出しは、元々-pathに渡されたディレクトリにgemをインストールします。 Bundlerランタイムは、その場所でgemを探します。 bundle install --systemを実行すると、このオプションを元に戻すことができます。
[〜#〜] edit [〜#〜]:以下のコメントで述べたように、またそうでない場合は、gemsシステム全体にインストールされます。さまざまなアプリの環境を管理するためにrvmなどを使用している場合は、上記の @ IuriGの答え を確認してください。
bundle env
を実行してみてください。これにより、パス構成が設定されている場所がわかります。
まず、情報によると、rvmとrbenvの両方をインストールしたようです。それは 非常に悪い考え です。あなたはそれらの1つを削除する必要があります(rbenv + bundlerは私にとって魅力のように機能しますが、rvmを試しませんでした)。
質問の確認について.bundle/config
プロジェクト内のバンドルのすべての構成がそこにあるため(プロジェクトがまだ削除されている場合は、新しい構成を作成できます)。次の行を追加する(または、既に存在する場合は変更する)必要があります:BUNDLE_DISABLE_SHARED_GEMS: '0'
宝石を共有するために、あなたのBUNDLE_PATH:
が設定されている(BUNDLE_PATH: vendor
私の場合)。
グローバル構成ファイルについては、~/.bundle/config
また、このmanページは役に立つかもしれません: bundle config
パスベンダー/バンドルを避けてシステム全体にGemをインストールするには、プロジェクトディレクトリで次のコマンドを実行するだけです
bundle install --system