Railsの勉強を始めて、gemとかBundlerとかなんぞやっておもったので勉強がてらメモしました。
間違い等あったら指摘していただくとうれしいです。
#gemとは
多くのプログラミング言語と同様に、Ruby にも幅広いサードパーティのライブラリが提供されています。
それらのほとんどは “gem” という形式で公開されています。RubyGems は (Ruby に特化した apt-get と同じようなパッケージングシステムで) ライブラリの作成や公開、インストールを助けるシステムです。
(https://www.ruby-lang.org/ja/libraries/ より引用)
まず、Rubyには様々なライブラリ(例えばRuby on Rails)が存在するのですが、それを管理するのが、RubyGemsというソフトウェアがあります。RubyGemsのおかげで、ライブラリのインストールやアンインストール、更新が可能になります。Ubuntuのapt-getみたいなものです。
そして、RubyGemsを使ってインストールされるRubyライブラリがgemパッケージというカタチで配布されているのです。
ちなみにRubyGemsはRubyをインストールしたときについてくるのでRubyGemsのインストールに関して心配する必要はなさそうです。
#gemコマンドについて
RubyGemsを使ってRubyライブラリの管理(インストール、アンインストール、更新など)を行うコマンドをgemコマンドといいます。
用例をいくつか見てみましょう。
これはRubyGemsがどのように使われるかを確認してほしいだけなのでちょう基本しか書いていません。詳しくは初心者は覚えておきたいRubygemsのコマンドまとめ を参照)
# 最新版のRubyライブラリをインストール
$ gem install <gemパッケージ名>
#Ruby on Railsの最新版をインストール
$ gem install rails
#パッケージのバージョンを指定してインストール
$ gem install <gemパッケージ名> -v <バージョン>
#Ruby on Railsの4.2をインストール
$ gem install rails -v 4.2
#インストールしたgem(Rubyライブラリ)を一覧で表示
$ gem list
#GemfileとBundlerについて
これまで述べてきたように、RubyGemsを使ってgemパッケージによりRubyライブラリをインストールしていくのです。しかし、複数のgemパッケージを個々にインストールすると問題が起こることがあります。
例えば、依存関係の問題(くわしくないので詳細は割愛)。また、複数人で開発を行う時、環境をそろえたいので、インストールするgemパッケージとそのバージョンを揃えるとき、一々確認しながらのインストールだと面倒です。
そういった問題をクリアにしてgemパッケージのインストールを行ってくれるのがBundlerです。
また、Bundlerによってインストールするgemパッケージを記述したものが、Gemfileです。
#Bundlerの使い方
(※Bundlerがどういうものかを確認するためのものです。実用的ではないので、実際にこれから使う方は別記事を参照してください。)
###1.Bundlerのインストール
BundlerもRubyGemsによりインストールを行います。
$ gem install bundler
###2.Gemfileを記述する。
$ bundle init
でGemfileの雛形が生成されるので、それを元に記述します。
###3.Gemfileを元にgemパッケージを一括でインストール
$ bundle install