見出し画像

各パッケージ管理ソフトの概要

brenv  

複数のRubyバージョンを管理するツール。バージョンを指定してrubyをインストールできる。インストール後はk買うバージョごとに利用するgem置き場が提供される。Railsアプリケーdヨンんごとに使用するRubyバージョンを指定できるようになる。

RubyGems
Rubyライブラリのgemパッケージ管理ツール。現在利用しているバージョンのrubyに対してgemをインストールできる。rubyをインストールすると、付属していくツール。目的なgemをインストールできる。rubyをインストールすると付属してくるツール。目的のgemをインストールする特に別のgemが必要になる。


Bundler
RubyGemsをより高機能に使うgem。RailsプロジェクトごとにGemfileというファイルで使用するgemを明示的に管理できる(PC全体を汚さず、Railsプロジェクトで完結する)。こいつ自体がRubyGemsによってインストールされるgemであるが、RubyGemsを操って各Railsアプリケーションに必要なgemをGemfile, Gemfile.lockというgem一覧ファイルに基づいてインストールできる。
RubyGemsの説明を見てるとそれで十分じゃね?と思うかもしれないが、Gemfile.lockが一番重要な機能。例えばgem「A」をインストールする場合にgem「B」が必要だったとする。そんなgem「A」をRubyGemsでインストールしたとする。このときgem「B」もインストールされる。ここまではよい。しかし時が流れてなにかの拍子にgem「B」のバージョンを上げたとする。このとき、gem「A」を利用するには実はgem「B」の特定のバージョンが必要であり、互換性がなくなってしまった場合、gem「A」は使えなくなってしまう。gem「B」のどのバージョンが必要なのかももうわからなくなってしまう。Bundlerを使ってgemをインストールして使用する場合は、Gemfile.lockに具体的にどんなgemをどんなバージョンでインストールしたのかが細かく記録されるため、この問題へ対処できるのだ。また、複数人で開発するときに対象のRailsアプリケーションが使用するgemの一覧をバージョン含めて共有する時にも役に立つ。


# rbenv周り
~/.rbenv/
versions/
X.X.X/ # Ruby(Ver X.X.X)の各種ファイルを管理するディレクトリ
bin/ # 当該Rubyバージョンの標準ライブラリ、RubyGems経由でインストールしたコマンドの実行ファイル
include/
lib/ # 標準ライブラリ、RubyGems経由でインストールしたライブラリ
openssl/
share/ # マニュアル類
shims/
<各コマンドの実行ファイル>
version # PC全体で使うruby環境のバージョン番号が書かれている

# Railsプロジェクト周り
<Railsプロジェクト用ディレクトリ>/
.ruby-version # このRailsプロジェクトで使うRuby環境のバージョン番号が書かれている(優先順位は version < .ruby-version


よく使うであろうコマンド


rbenv install —list 
インストール可能なRubyのバージョンを表示。無印のバージョンが最も高くてdevとかついてないやつが最新の安定版

env install <バージョン>
バージョン指定してRubyをインストール

brenv rehash
インストールしたRubyへパスを通す(新しくバージョン指定してインストールした場合に必須で必要になる。rbenv install とセット)


rbenv global<バージョン>
特段のの指定がない場合に、本マシンで使用するRubyのバージョンを設定

brent local<バージョン>
カレントディレクトリ配下で使用するRubyのバージョンを指定。
このコマンドを実行するとカレントディレクトリに.ruby-versionというファイルができ、開くと<バージョン>が記載されている。
後述のgemfileではRailsアプリケーションが使うRubyバージョンは指定できない(Bundler自体が現在使っているRubyを親とするため)ためなかなか重要なファイルである。


この記事が気に入ったらサポートをしてみませんか?