web-dev-qa-db-ja.com

すべての宝石の依存関係をダウンロードする

必要なファイルをダウンロードして別のマシンに取り込むことでコンパスをインストールしたいインターネット接続なし。私はコンパスのソースパッケージをダウンロードしましたが、接続されていないマシンでgemを実行すると、依存関係が不足しているというメッセージが表示されます。解決策はありますか?

28
Sergio

それがまさに私が抱えていた問題です。
しばらく検索した後、バンドラーを使用して動作するソリューションを見つけました https://bundler.io/

依存関係を持つ宝石を取得する:

  • Gemfileという名前のファイルを含む新しいフォルダを作成します。
  • 依存関係を持たせたいソースと宝石をファイルに書き込みます
  • Bsp:

    ソース " http://rubygems.org "
    gem 'Rails'、 '3.2.1'

  • このフォルダーでコマンドラインを開いて実行:bundle install
  • これにより、すべての依存関係がダウンロードおよびインストールされます
  • 表示したい場合は、コマンドバンドルリストを実行します。
  • コマンドを実行しますバンドルパッケージ
  • これにより、ディレクトリ構造のベンダー/キャッシュが作成されます
  • キャッシュディレクトリ内には、宝石に必要なすべての依存関係があります。

インターネットに接続されていないマシンにGemをインストールします。

  • キャッシュフォルダーをマシンにコピーする
  • キャッシュフォルダー内のコマンドラインを開き、gem install --local Gemname.gemを実行します
  • Bsp:

    gem install --local Rails-3.2.1.gem

41
jadephantom

やった

export GEM_HOME=.
export GEM_PATH=.
gem install --no-ri --no-rdoc --install-dir . <gem>
4
JoshMahowald

うーん。それは少し難しいです。 gem dependencyは、1つのgemの依存関係を表示しますが、ツリーの最後までは行きません。

➔ gem dependency compass
Gem compass-0.10.5
  haml (>= 3.0.4, runtime)

Gem compass-0.10.6
  haml (>= 3.0.4, runtime)

➔ gem dependency haml   
Gem haml-3.0.21
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.22
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.23
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.24
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

「開発」とは、宝石自体を開発している場合にのみ必要であることを意味します。 「ランタイム」とは、それを使用するために必要なことを意味します。

したがって、この場合、唯一の依存関係はhamlです。もっと複雑な宝石だとしたら、ツリー全体を生成する良い方法がわかりません。

3
John Bachir