サーチ…


備考

Gemfileのドキュメント

成長が予想されるプロジェクトの場合は、 Gemfileコメントを追加することをおGemfileます。そうすれば、大規模な設定でも、名前が自明でなくても2年前に追加したとしても、各宝石が何をするのかは分かります。

これは、特定のバージョンを選択した理由を覚えておいて、後でバージョン要件を再評価するのにも役立ちます。

例:

# temporary downgrade for TeamCity
gem 'rake', '~> 10.5.0'
# To upload invoicing information to payment provider
gem 'net-sftp'

宝石とは何ですか?

宝石は、プログラミング言語のルビーのプラグインまたは拡張機能に相当します。

まさにレールでさえあれば、宝石だけではありません。多くの宝石は、レールや他の宝石(それらは前記の宝石に依存している)または独立して建てられています。

あなたのRailsプロジェクト

Gemfile

あなたのRailsプロジェクトには、 Gemfileというファイルがあります。ここでは、プロジェクトに組み込んで使用する宝石を追加できます。一度追加すると、 bundlerを使用して宝石をインストールする必要があります(Bundlerセクションを参照)。

Gemfile.lock

これを済ませたら、あなたのGemfile.lockは新しく追加された宝石とその依存関係で更新されます。このファイルは、使用している宝石をロックして、そのファイルで宣言されている特定のバージョンを使用するようにします。

GEM
remote: https://rubygems.org/
specs:
devise (4.0.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
responders
warden (~> 1.2.3)

この例は、宝石deviseです。 Gemfile.lock 、バージョン4.0.3が宣言され、指定されたバージョンを使用する他のマシンまたはGemfile.lockサーバーにプロジェクトをインストールするときに通知されます。

開発

1人の人、グループ、またはコミュニティ全体が宝石を扱い、維持しています。完了した作業は、通常、特定のissuesが修正された後、またはfeaturesが追加された後にリリースされます。

通常、リリースはSemantic Versioning 2.0.0の原則に従います。

バンドラー

宝石を扱い、管理する最も簡単な方法は、 bundlerを使うことです。 Bundlerは、 Bowerに匹敵するパッケージマネージャです。

バンドラーを使用するには、まずそれをインストールする必要があります。

gem install bundler

Gemfileして実行するGemfileで、 Gemfile宝石を追加して実行するだけです

bundle

あなたの端末で。これにより、新しく追加された宝石がプロジェクトにインストールされます。問題が発生した場合は、端末にプロンプ​​トが表示されます。

より詳細な情報が必要な場合は、 ドキュメントをご覧ください。

Gemfiles

まず、gemfilesには、RubyGemsサーバーのURLの形式で少なくとも1つのソースが必要です。

bundle init実行して、デフォルトのrubygems.orgソースを持つGemfileを生成しbundle init 。 httpsを使用すると、サーバーへの接続がSSLで検証されます。

source 'https://rubygems.org'

次に、必要なバージョン番号を含む宝石を宣言します。

gem 'rails', '4.2.6'
gem 'rack',  '>=1.1'
gem 'puma',  '~>3.0'

> = 1.0のようなほとんどのバージョン指定子は自明です。指定子〜は特別な意味を持ちます。 〜2.0.3は> 2.0.3および<2.1と同じです。 〜2.1は> 2.1および<3.0と同一である。 〜2.2.betaは、2.2.beta.12のようなプレリリース版と一致する。

Gitリポジトリは、リポジトリに1つまたは複数の有効な宝石が含まれている限り、有効な宝石源でもあります。 :tag:branch 、または:refを使用してチェックアウトするものを指定します。デフォルトはmasterブランチです。

gem 'nokogiri', :git => 'https://github.com/sparklemotion/nokogiri', :branch => 'master'

ファイルシステムからアンパックされたgemを直接使用したい場合は、:pathオプションをgemのファイルを含むパスに設定するだけです。

gem 'extracted_library', :path => './vendor/extracted_library'

依存関係はグループに配置できます。グループは、インストール時に( --withoutを使用して)無視することも、一度にすべてを必要とすることもできます( Bundler.requireを使用)。

gem 'rails_12factor', group: :production

group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
  gem 'dotenv-rails'
end

あなたはとGemfileにルビーの必要なバージョンを指定することができruby 。 Gemfileが別のRubyバージョンにロードされている場合、Bundlerは説明付きで例外を発生させます。

ruby '2.3.1'

宝石類

RVM(Ruby Version Manager)を使用しているgemset 、各プロジェクトにgemsetを使用するgemsetをお勧めします。 gemsetは、宝石をお互いから隔離するために使うことができる容器です。プロジェクトごとにgemset作成すると、他のすべてのプロジェクトを壊すことなく、あるプロジェクトの宝石(および宝石のバージョン)を変更することができます。各プロジェクトでは、自分の宝石だけを心配する必要があります。

RVMは、ルビインタープリタごとに@global gemset提供します(> = 0.1.8)。与えられたルビーの@global gemsetインストールする宝石は、そのルビと関連して作成した他のすべての宝石セットで利用できます。これは、すべてのプロジェクトが特定のRubyインタプリタインストール用にインストールされた同じ宝石を共有できるようにするための良い方法です。

宝石セットの作成

すでにruby-2.3.1インストールされており、次のコマンドを使用して選択したとします。

rvm use ruby-2.3.1

今このルビーバージョンのgemsetを作成する:

rvm gemset create new_gemset

new_gemsetnew_gemsetの名前です。 Ruby版で利用可能な宝石のリストを見るには:

rvm gemset list

すべてのルビーバージョンの宝石をリストする:

rvm gemset list_all

リストからgemsetを使用する( new_gemsetは使用したいgemsetであると仮定します)。

rvm gemset use new_gemset

他のルビーバージョンに移行したい場合は、gemsetでルビバージョンを指定することもできます:

rvm use ruby-2.1.1@new_gemset

特定のルビーバージョンのデフォルトのgemsetを指定する:

rvm use 2.1.1@new_gemset --default

インストールされているすべての宝石をジェムセットから取り除くには、以下の方法で空にすることができます:

rvm gemset empty new_gemset

1つのルビーから別のルビーにgemsetをコピーするには、次のようにします。

rvm gemset copy 2.1.1@rails4 2.1.2@rails4

gemsetを削除するには:

rvm gemset delete new_gemset

現在のgemset名を表示するには:

rvm gemset name

グローバルgemsetに宝石をインストールするには:

rvm @global do gem install ...

Rubyインストール時のGemsetセットの初期化

新しいルビーをインストールすると、RVMは2つのジェムセット(デフォルトの空のジェムセットとグローバルジェムセット)を作成するだけでなく、ユーザー編集可能ファイルのセットを使用してインストールする宝石を決定します。

~/.rvm/gemsetsで作業すると、rvmはインストールされているルビ文字列に基づいてツリー階層を使ってglobal.gemsdefault.gemsを検索します。 ree-1.8.7-p2010.02の例を使用して、rvmは次のファイルをチェックします(そしてそこからインポートします):

~/.rvm/gemsets/ree/1.8.7/p2010.02/global.gems
~/.rvm/gemsets/ree/1.8.7/p2010.02/default.gems
~/.rvm/gemsets/ree/1.8.7/global.gems
~/.rvm/gemsets/ree/1.8.7/default.gems
~/.rvm/gemsets/ree/global.gems
~/.rvm/gemsets/ree/default.gems
~/.rvm/gemsets/global.gems
~/.rvm/gemsets/default.gems

たとえば、 ~/.rvm/gemsets/global.gemsを次の2行を追加して編集したとします。

bundler
awesome_print

あなたが新しいルビーをインストールするたびに、これらの2つの宝石がグローバルジェムセットにインストールされます。 default.gemsおよびglobal.gemsファイルは、通常、rvmの更新中に上書きされます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow