29

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

4

3 に答える 3

46

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

依存関係のある Gem の取得:

  • その中に Gemfile という名前のファイルを含む新しいフォルダーを作成します。
  • 依存関係を持たせたい Source と Gem を File に書き込みます。
  • 例:

    source "http://rubygems.org"
    gem 'rails', '3.2.1'

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

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

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

gem install --local rails-3.2.1.gem

于 2012-02-16T13:41:54.047 に答える
4

やった

export GEM_HOME=.
export GEM_PATH=.
gem install --no-ri --no-rdoc --install-dir . <gem>
于 2012-09-29T02:23:07.950 に答える
3

うーん。それは少し大変です。gem dependency1 つの 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)

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

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

于 2010-12-10T02:13:42.370 に答える