私が見つけましたこれを行う方法。説明は次のとおりです。
Bundlerは、デフォルトで環境変数BUNDLE_PATH
が指すフォルダにgemをインストールします。 BUNDLE_PATH
のデフォルト値はvendor/bundle
です。したがって、すべての宝石は/vendor/bundle
フォルダにインストールされます。これはプライベートフォルダ(各バージョンのRailsアプリケーション用)です。新しいバージョンのRailsアプリケーションがインストールされている場合、vendor/bundle
は存在しません。したがって、Bundlerは各宝石をインストール/プリコンパイルします。それはrubygems.org
から同じものをダウンロードするよりも節約できるvendor/cache
から宝石を拾いますが、ネイティブ拡張のコンパイルを避けることはできません。
をbundle install
コマンドラインに渡すことで、これを無効にすることができます。これにより、すべてのバージョン(Railsアプリケーション)からアクセス可能な/shared/path
に常に宝石がインストールされます。
この方法では、すでにインストールされているものが見つかるため、バンドルラーは宝石の再インストール/再コンパイルを試みません。
ので、これは `バンドルinstall`は通常、バンドラーが既に要件に一致findsが宝石をスキップし、私
bundle install --local --deployment --path /shared/bundle --without development test
のために働いていた魔法のコマンドがあります。展開には何を使用していますか? –
@NeilSlater私はシェフを使って展開します。 – Litmus
すべてのネイティブ拡張の回答がありませんが、 'NOKOGIRI_USE_SYSTEM_LIBRARIES = true'を追加しましたか? – zrl3dx