December 11th, 2020
Ruby用のパッケージ管理システムのこと。 RubyがRubyGemsを標準ライブラリとして内包している。 Rubyとともに使える色々なgem(パッケージ)を管理してくれます。
ruby -v
# Rubyがあるなら
gem -v
# gemコマンドも使えるgem install Gem名 でgemをインストールしたりできる。
*Gemのドキュメント
gem update —systemgem update [GEMNAME]*RubyGemsのコマンド
bundler自体も実はGemの一種です。 Gem同士の依存関係とバージョンの管理してくれます。
*Bundle gem ドキュメント
bundle init
# Gemfileを作るbundle install
# でGemfileに記載したgemを一括で導入できる.gem envで確認できる。INSTALLATION DIRECTORYにgemはインストールされるが、別の場所に変えることも可能。
bundle install —path vendor/bundle --jobs=4
# 最初だけ--path vendor/bundle すると次回以降のbundleインストール先は
# ./vendor/bunlde以下にgemがインストールされる。
# --jobs=4 は並列処理でbundle installしてくれます。(つまり、はやくなります。)
# -j4 と書いてもOKです。bundle config
# または
bundler env
# こちらは、bundler だけでなく ruby や gem 等の情報も確認できる.bundlerがどこからgemを探すかは、プロジェクトルートの下の.bundle/configに設定ファイルで決まります。これを消すことで、新たな場所にbundle installできるようになります。
無い場合は先ほど説明した、gem envで表示されるINSTALLATION DIRECTORYになります。
The location to install the specified gems to. This defaults to Rubygems' setting.
Gemfileをもとにgemの更新やインストールを行います。 Gemfile.lockで管理している各Gemのversionが変わります. Gemfileに記載しているものは変わりません。
bundle update
# Gemfileにあるgemがupdate可能ならupdatebundle update 特定のgem
# 特定のgemをupdatesemantic versioningというルールで決められています。
例えば、gem 'rails', '~> 5.2.5'のような記述があったとして
5.2.5のようにA.B.Cで分かれています。以下のように分類しています。
ちなみに、'~> 5.2.5'は 5.2.5以上 6.0.0未満 の最新のものを利用するという意味。つまり、Majorバージョンは5に固定しておきたいわけです。
gem uninstall gem名bundle install or bundle update