gemってなんだ! bundleってなんだ!
- そもそもライブラリってなんだ
- gemってなんだ
- RubyGemsってなんだ
- Bundlerってなんだ
4.1 Gemfile/Gemfile.lockとは
4.2 bundle install/bundle updateの違い - 参考文献
- おわりに
ITの分野では、ある特定の機能を持ったコンピュータプログラムを他のプログラムから呼び出して利用できるように部品化し、そのようなプログラム部品を複数集めて一つのファイルに収納したものをライブラリという。
(IT用語辞典より)
要は汎用性の高いプログラムを再利用できる形でまとめたもののことで、ライブラリを使うことで自分で1からプログラムを記述する必要がなくなる
Ruby用のライブラリのことをgemという。
gemの例
Ruby on Rails(Webフレームワーク) ← 実はRailsもgem
omniauth(認証)
RSpec(テスト)
RubyGemsは、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと("gem" と呼ばれる)ライブラリの配布用標準フォーマットを提供している。gemを容易に管理でき、gemを配布するサーバの機能も持つ。Rubyバージョン1.9以降では標準ライブラリの一部となっている。
(Wikipediaより)
要はgem専用のパッケージ管理システムのこと。 rubygems.orgでgemの情報公開、提供を行なっている。
BundlerはGemfile
とGemfile.lock
に従ってgemを管理するライブラリのこと。gemはgem install 'omniauth'
のように個別インストールも可能だが、様々なgemを組み合わせて使っていると、
gemAのver1とgemBのVer2はうまく動くけど、最新バージョン同士だとうまく動かない
複数人、複数環境で開発を行う場合、各環境で使うライブラリの名前、バージョンを合わなければならない
のようなことが起こりうる。そのような時にgem同士の互換性を保ちながら各gemの導入、管理を行ってくれるのがBundler
Gemfileとは、gemをインストールするための設計図
のようなもの。開発に必要なgemをこのGemfileに記載する。
Gemfile.lockとは、実際にgemをインストールした後の結果を記載したもの。gem同士は関連し合っていることが多く、Gemfileに書いてあるgemの他にも必要なgemがあることがあり、Bundlerはそれらを自動でインストールし、Gemfile.lockに記述する。
bundle installすると、Gemfile.lock
を元にgemのインストールを行う。もしGemfileに更新があれば、そのgemとそのgemに関連するgemをインストールした後にGemfile.lockを更新する。
bundle updateをすると、Gemfile
を元にgemのインストールをし、Gemfile.lockを更新する。
http://e-words.jp/w/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA.html
https://tech-camp.in/note/technology/55305/
https://ja.wikipedia.org/wiki/RubyGems
https://qiita.com/mochikichi321/items/ee0b7133524816f73e60
https://qiita.com/oshou/items/6283c2315dc7dd244aef
https://qiita.com/3no3_tw/items/8c1e3e95c75edae1036d
https://qiita.com/lasershow/items/1a048d03ddaaba98171e
https://qiita.com/YusukeHigaki/items/0314e2ec1d13cc5d4c99
雰囲気でやってたので地味に理解が深まった