December 11th, 2020
Ruby用のパッケージ管理システムのこと。 RubyがRubyGemsを標準ライブラリとして内包している。 Rubyとともに使える色々なgem(パッケージ)を管理してくれます。
ruby -v
# Rubyがあるなら
gem -v
# gemコマンドも使える
gem install Gem名
でgemをインストールしたりできる。
*Gemのドキュメント
gem update —system
gem 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可能ならupdate
bundle update 特定のgem
# 特定のgemをupdate
semantic 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