web-dev-qa-db-ja.com

rubygemsをインストールせずにgemをダウンロードする最も簡単な方法は何ですか?

特定の宝石に必要なすべての宝石をインストールせずに宝石をダウンロードしたいのですが。

特にRails 3 gem。依存関係がたくさんあるので、現在Ruby/rake/Railsソフトウェアがないクローズドサーバーにインストールする必要があります。

Rubygems.orgをクリックするのは面倒なので、手がかりはあれば素晴らしいでしょう。

さて、これを少し明確にしましょう。私が欲しいのはこれが機能することです:

gem install Rails-download-only

これで問題が解決し、結果の宝石をディスクに書き込んで、インターネットにアクセスできないサーバーに移動できるようになりました。

10
Daniel

単一のgemをダウンロードするには(例としてloudmouth gemを使用):

gem fetch loudmouth
Fetching: loudmouth-0.2.4.gem (100%)
Downloaded loudmouth-0.2.4

Rails 3アプリが実行に依存するすべての宝石をダウンロードするには:

bundle package

これにより、すべてのgem(およびそれらの依存関係)がダウンロードされ、ベンダー/キャッシュに配置されます(インストールせずに)。

次に、ベンダー/キャッシュ内のすべてのgemをCDに書き込み、ネットアクセスなしで他のサーバーに物理的に持ち込むことができます。

18
pglombardo

まあ、私は自分の質問に答えるのは嫌いですが、これが私の質問の解決策である可能性が最も高いと思います。

- 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キャッシュファイルの場所は非常に便利です。ネットワーク化されたマシンに多数の宝石があり、使用したであろうすべての宝石を輸送したくない場合

> bundle list

必要なアプリケーション固有の宝石を表示します。

-ダニエル

2
Daniel

Railsとその依存関係を含む、アプリケーションに必要なすべてのgemを含むローカルRubyGemsサーバーを作成します。

ここに基本的なドキュメント:

このブログ投稿は、自動インデックス作成のためにGemsを送信できる内部サーバーを設定する方法を示しています。

2
jtimberman

残念ながら、依存関係の問題を回避することはできません。それらは理由のために必要です。依存関係を必要とせずにRailsをインストールしようとすると、Railsがまったく実行されても、多くの問題が発生します。

クローズの意味を正確に指定していません。システム全体のソフトウェアをインストールできないなど、閉鎖を意味する場合は、 [〜#〜] rvm [〜#〜] を参照してください。これは、自己完結型のRuby環境。サーバーがインターネットに接続されていない場合は、これを別のサーバーに設定して移動することもできます。それを見て、これがあなたを助けるかどうか見てください。

0
8BitsOfGeek