web-dev-qa-db-ja.com

レールでのGemfileの使用とは何ですか?

RailsでのGemfileの使用は何ですか?

Gemfileの使用方法

49
vijay

Railsでの開発中に、必要な機能を提供したい場合がありますが、方法がわからないか、自分で実装したくない場合があります才能のある開発者によって開発が行われました。

必要になる可能性のあるこれらの開発(ユーザー認証、メッセージシステム、アセットハンドラー、ジオロケーション、ページネーションシステム、Amazon AWSなどの外部サービスへのリンク、最後になりますがRails自体)はRuby宝石。これらはRubyソフトウェアパッケージであり、必ずしもRailsに関連するわけではありませんが、RailsはRubyをベースにしているため、98%のgemをRailsで使用できます。 webappコード。

多くの宝石は github で見つけることができますが、 Ruby-gems または Ruby-toolbox を介して宝石を検索するのが楽しいです

gemfileは、プロジェクトに含めるすべてのgemのリストです。 bundler (gem)とともに使用して、使用済みのgemをインストール、更新、削除、その他の方法で管理します。

gemfileには別の目的があります-:development:test:assets:productionなどのグループとRailsで宝石をグループ化できますいつ宝石を含めるかを知っています。例えば:

group :development, :test do
    gem "rspec-Rails"
    gem "factory_girl_Rails"
    gem "guard-rspec"
end

Rails 4では、assetsグループが廃止されていることに注意してください

これらのgemはアプリケーションのテスト用であるため、開発環境とテスト環境に属します。実稼働環境でそれらを使用可能にする必要はありません(可能ですが、不必要にメモリが膨張します)。

したがって-gemfileを使用するには、インストールするgemを次のように記述するだけです。

gem 'devise'

事前に(コンソール/ cmd/sshで)bundlerをインストールしてください。

$ gem install bundler

そして、コンソールに書き込みます

bundle install

別のgemfileが表示されます! Gemfile.lockこのファイルは、テキストリーダーで開くとわかるように、すべてのgemのバージョンと依存関係を一覧表示します。これは、インストールしたgemのバージョンを知る必要があるときに役立ちます。

Gemfileの詳細については、- バンドラーページで読む

gemの選択に関する情報については、 this で始めることができます

頑張って楽しんでね!


OK、それでは作成されたこのGemfile.lockは何ですか?

Gemfile.lockは、その名前が示すように、インストールされたすべてのgemのすべてのバージョンのロックです。そのため、Gemfileをインストールする必要がある場合、ロックファイルはインストールされたものであり、アプリを起動して実行するために実際に必要なバージョンです。

その特定のバージョン(Gemfile.lockで指定されている)にgemがない場合は、Railsが文句を言うので、不足しているgemをインストールする(bundle install経由)か、修正する必要があります。手動で競合します(バンドラーがその手がかりを与えると信じています)

_Gemfile.lockについて知っておくべきこと

  • 誤って削除した場合、bundle installを実行すると再生成されます。誤ってGemfileを削除してしまった場合、運が悪くなります。gitを使用する必要があります:)
  • Herokuはすべてのgemを再インストールするため、Gemfile.lockを気にしません。そのため、Herokuの場合、必要なgemバージョンをmust設定するか、Herokuが常に最新バージョンのgemをインストールするため、問題が発生する可能性があります
  • プロジェクトでGemfile.lockを保持して、アプリが適切に動作するgemのバージョンを常に把握できるようにします。
89
Nick Ginanto

Gemfilesは、アプリケーションのRuby依存関係を管理するために使用される Bundler の設定です。このWebサイトには、 Gemfileのマニュアルページ

10
willglynn

簡単な答えをしてみます

類推による説明

車を作りたいとしましょう。最初から。今では悪夢になります。シャーシ、エンジン、コロボレーター、ラジエーター、冷却、換気などを構築する必要があります。

宝石を使用すると、他の人が以前に作った車の部品を利用できます

しかし、車を作るのはあなただけではありません。これまでに車を作った人は誰でも、基本的に同じことをしました。あなたがいる前に出かけて、燃焼エンジンなどを作った賢い人々がいました...........実際には気にしません。

車輪を再発明する必要はありません。最高の機器をすぐに入手できるのに、なぜ自分で作るのですか?指を離さずに、世界で最も才能のあるエンジニアによって作成された最高のエンジンを入手できるとしたらどうでしょう? 1年かけて自分で作ろうとしていますか?

したがって、基本的にすべてを自分で作成するのではなく、必要なすべての部品の買い物リストを書き留めます。そして、それは基本的にgemファイルです:

  • ロールスロイスエンジン
  • AutoLiveシートベルト
  • ミシュランタイヤ。
  • PIAA Nightヘッドライト
  • などなど.

私の友人は基本的にあなたのgemファイルです!

3
BKSpurgeon

システムには多くのgemを含めることができます...したがって、同じgemの複数のバージョンを持つことができます。

Gemfileは、Railsアプリケーションを実行するたびに使用/ロード/(存在しない場合はインストール)するgemsを含むversionsのリストを指定します。またはbundle exec . .のあるもの

1
Rahul garg

まず、宝石とは何ですか?

ウィキペディアによると:

RubyGemsは、Rubyプログラムおよびライブラリを配布するための標準形式を提供するRubyプログラミング言語のパッケージマネージャーです。

Gemfile

Gemfileは、Rubyプログラムのgem依存関係を記述するために使用する、作成するファイルです

今、非常に簡単な言葉で:

Gemは、コードで使用できるライブラリと考えることができます。例: faker gem

コードはfaker gemの機能を使用して偽のデータを生成できます。

これで、プロジェクトに必要なすべてのgemをgemfileにリストできます。バンドルインストールを実行すると、gemfile内のすべてのgemがインストールされます。

0
slal