特定の gem に必要なすべての gem をインストールせずに gem をダウンロードしたいと思います。
特に Rails 3 gem 用です。依存関係が多数あり、現在 ruby/rake/rails ソフトウェアがないクローズド サーバーにインストールする必要があります。
rubygems.org をクリックするのは面倒なので、どんな手がかりでもいただければ幸いです。
わかりました。少し説明させてください。私が望んでいるのは、これが機能することです。
gem をインストール rails --download-only
そうすれば、結果として得られた宝石をディスクに書き込み、インターネットにアクセスできないサーバーに移動できるため、問題は解決します。
答え1
単一の gem をダウンロードするには、次のコマンドを使用します (例として、loudmouth gem を使用します)。
gem fetch loudmouth
Fetching: loudmouth-0.2.4.gem (100%)
Downloaded loudmouth-0.2.4
Rails 3 アプリが依存するすべての gem をダウンロードするには、次のコマンドを実行します。
bundle package
これにより、すべての gem (およびその依存関係) がダウンロードされ、vendor/cache に配置されます (インストールは行われません)。
その後、vendor/cache 内のすべての gem を CD に書き込み、ネットアクセスなしで物理的に他のサーバーに持ち込むことができます。
答え2
まあ、自分の質問に答えるのは嫌ですが、これが私の質問に対する解決策になる可能性が最も高いと思います。
- find network enabled machine
- install rails and all needed gems using RubyGems.
- tar/zip /usr/lib[64]/ruby/gem/1.9.1/cache/*.gem
- transport tar file to non-networked computer.
これらのgemキャッシュファイルの場所は非常に便利です。ネットワークマシンに多数のgemがあり、すべてのgemを転送したくない場合は、
> bundle list
必要なアプリケーション固有の gem を表示します。
-ダニエル
答え3
Rails とその依存関係を含む、アプリケーションに必要なすべての gem を備えたローカル RubyGems サーバーを作成します。
基本的なドキュメントはこちら:
このブログ投稿では、自動インデックス作成のために Gem を送信できる内部サーバーを設定する方法を説明します。
答え4
残念ながら、依存関係の問題を回避することはできません。依存関係が必要なのには理由があります。必要な依存関係なしで Rails をインストールしようとすると、Rails がそもそも実行されない場合でも、多くの問題が発生します。
クローズドの意味を正確に指定していません。システム全体のソフトウェアをインストールできないという意味でクローズドを意味するのであれば、RVMこれは、自己完結型の Ruby 環境を作成できるソフトウェアです。サーバーがインターネットに接続されていない場合は、これを別のサーバーに設定して移動することでもうまくいく可能性があります。これを調べて、役立つかどうかを確認してください。