ローカルgemをインストールするにはどうすればよいですか?


回答:


288

あなたが行うときうん、gem installそれはあなたの.gemファイルがある場合ので、それはそれを拾うだろう、最初にカレントディレクトリを検索します。私はあなたが同様に便利であるかもしれない宝石のリファレンスでそれを見つけました:

gem installは、指定されたgemをインストールします。ローカルインストール(つまり、現在のディレクトリにある.gemファイル)を試み、それが失敗した場合、最新バージョンのgemをダウンロードしてインストールしようとします。


2
リンクは無限のリダイレクトで終了します:(
Ain Tohvri 2014年

2
チェックインして、これが2019
Charles Wood

1
これは私にとって2019年に機能しません
iconoclast

1
私が持っているGemfileではなく、.gemファイルを。それで、この.gemファイルは何ですか?何を入れればよいですか?—待ってください–なるほど。あなたはgem-name.gemファイルを意味します。UNIXでは、ファイルが「。」で始まるのはごく普通のことです。だからそれを綴る方が良いです
マーティン

2020年の未来から確認でき、リンクはうまくいきました。遠い将来機能しない場合のために、ここに2020年4月19日
Jed Burke

329

また、あなたは使うことができます gem install --local path_to_gem/filename.gem

これにより、中断したときに行われる通常のgemリポジトリスキャンがスキップされ--localます。

で他の魔法を見つけることができますgem install --help


rubygemsなどのgemをzip形式でダウンロードします。したがって、ここには.gemファイルはありません。これをローカルからインストールするにはどうすればよいですか?ありがとうございました。
Erran Morad、2015

3
@ BoratSagdiyev、zipファイルは宝石ではありません。ほとんどのzipファイルと同様に、多くのことを実行する前に解凍する必要があります。gemが含まれている場合は、抽出された.gemファイルに対してgem installを使用できます。gemフォーマットの内部を覚えていません。特別なヘッダーを持つzipファイルである可能性もありますが、rubygemsはzipファイルをそのように認識しません。
JasonTrue 2015年

62

完全なファイル名をgemファイルに使用することもできます。

gem install /full/path/to/your.gem

これも機能します-おそらく最も簡単な方法です


38

bundlerを使用してgemを作成する場合:

# do this in the proper directory
bundle gem foobar

それらが書かれた後、それらをrakeでインストールできます:

# cd into your gem directory
rake install

あなたのダウンロードした宝石も知っている可能性がrake installあります。


3
これは現代の最良の答えのようです。承認済みの回答は8年前から
sixty4bit

14

githubまたは他のscmホストサイトからプロジェクトファイルをダウンロードする場合は、gem buildを使用して最初にプロジェクトをビルドしてください。これにより、現在のディレクトリにwhatever.gemファイルを取得できます。次に、gemをインストールします。


13

ローカルで変更されたgemのフォークで作業したい場合、そのための最良の方法は

gem 'pry', path: './pry'

Gemfileで。

... ./pryリポジトリのクローンになります。bundle install一度実行するだけで、gemソースの変更はすぐに反映されます。を使用してgem install pry/pry.gemも、ソースは引き続き移動されGEM_PATH、常に両方を実行bundle gem prygem updateてテストする必要があります。



0

さて、これは私のDRYインストールです。

  1. キャッシュディレクトリに必要なgemがすでにインストールされているコンピューターを調べます(デフォルトでは: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
  2. すべての「*.gemsファイル」を、自分のgemキャッシュの場所にgemのないコンピューターにコピーします(デフォルトでは、最初のステップと同じパトロンパス:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
  3. コンソールでgemsキャッシュ(cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)に配置し、gem install anygemwithdependencieshere(例によってcucumber-2.99.0

gemをインストールした後、デフォルトでrubygemsはgemファイルをキャッシュのgemディレクトリに配置し、重複するthatsファイルを意味をなさないので、それはDRYです。両方のコンピューターに同じバージョン(または偏執的なセキュリティルールによってブロックされる場合)の方が簡単です。

編集:rubyまたはrubygemsの一部のバージョンでは、動作せず、アラートまたはエラーが発生します。gemを別の場所に配置できますが、DRYを取得できません。他の代替手段は、起動統合コマンドを使用gem serverして、gemソースにlocalhost URLを追加します。情報:https : //guides.rubygems.org/run-your-own-gem-server/


0

ジェムはhttps://rubygems.org/gems/からダウンロードできますするか、バンドルとラックを介してローカルgemを構築できます。

例えば:

  • バンドルgem yourGemName
  • 熊手インストール

実際のGemをインストールする前に、依存関係のインストールに注意してください。

  • gem install --local /pathToFolder/xxx-2.6.1.gem

注:同じマシンでfluentd td-agentとrubyを使用する場合。必ずtd-agentのtd-agent-gemコマンドを使用してください。td-agentには独自のRubyがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.