Rubyを使い始めようとするとrbenvやらgemやらbundlerなんて単語が出てきて、何それ?という感じになりませんか。わたしはなりましたよ。
ということで、細かい事は良いからとりあえずRubyを使える状態にしたい、という方に向けた入門解説です。
タップできる目次
rbenvとは
rbenvは複数バージョンのRubyをインストールして必要に応じてバージョンを切り替えて使えるようにしよう、という仕組みです。
開発の現場など複数バージョンのRubyを切り替えながら使いたい場合に便利です。
新しいバージョンのRubyでも動くか試してみよう、なんてことも気軽にできるようになるのでrbenvは導入しておいても良いかと思います。
rbenvインストール
macOSの場合
homebrewを使っていることを前提にしています。次のコマンドでrbenvをインストールします。
$ brew install rbenv ruby-build
rbenvとruby-buildをインストールしたら以下のコマンドで.zshrcへ2行追記します。
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
追記したら.zshrcを読み込みます。手動で読み込むのは今回だけです。
$ source ~/.zshrc
Ubuntu Linuxの場合
GitとCurlをあらかじめインストールしておきます。
$ sudo apt install git
$ sudo apt install curl
rbenvをGitHubからcloneします。
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
正常にcloneできたら以下のコマンドで.bashrcへ2行追記します。
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
追記したら.bashrcを読み込みます。手動で読み込むのは今回だけです。
$ source ~/.bashrc
その他必要なものをインストールしておきます。
$ sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev gcc make
Ruby on Railsの利用も考えているのであれば以下も一緒にインストールすると良いかも知れません。
sudo apt install libsqlite3-dev cmdtest ruby-railties
rbenvの使い方
これでrbenvコマンドが実行できるようになっているはずなのでrbenvコマンドからインストール可能なrubyを次のコマンドで確認します。
$ rbenv install -l
ruby 2.6.5をインストールしたければ次のようにします。
$ rbenv install 2.6.5
インストールしたruby 2.6.5を使うには次のようにしてバージョンを切り替えます。
$ rbenv global 2.6.5
これで切り替わりました。切り替え可能なrubyを確認したい場合は次のようにします。
$ rbenv versions
新しくrubyをインストールしたりgem(後述)をインストールした場合は更新を反映させるコマンドを実行しておく必要があるので注意してください。このコマンドはおまじないだと思って頂ければ良いでしょう。
$ rbenv rehash
rbenvのディレクトリ構成
rbenvを使うとホームディレクトリ配下に「.rbenv」というディレクトリが作成されます。
ディレクトリ | 役割 |
~/.rbenv/ | リートディレクトリ |
~/.rbenv/shims/ | rbenvで切り替えを実現するためのラッパーファイル |
~/.rbenv/version | グローバルに設定しているRubyのバージョンを記録している |
~/.rbenv/versions/ | rbenvでインストールしたRubyはここにインストールされる |
gemとbundler
gemとは
gemとはパッケージの事です。あるいはライブラリやモジュールと説明した方がピンと来るかも知れません。
素のRubyには備わっていない便利な処理を追加するわけですね。gemはパッケージとしてのgemとパッケージ管理システムとしてのgem、どちらも含みます。
とりあえずgemといえばパッケージの事だと思っていれば良いです。
bundlerとは
bundlerはgemを管理するためのツールです。ややこしい事にgemを管理するためのbundlerをgemでインストールします。
gemというのは依存関係があってひとつずつ手でインストールするのはとても大変です。それを解決してくれるのが bundlerというわけです。bundlerを使うと依存関係を解決しながらgemをインストールしてくれます。
bundlerでパスを指定してgemをインストールする
これは好みの問題なのですが、ネットでbundlerを調べるとgemのインストール先を「vendor/bundle」としている事が多いです。
アプリを開発するディレクトリに入って以下のコマンドを打ちます。
$ bundle config set path 'vendor/bundle'
そうしたら初期化しましょう。
$ bundle init
初期化するとGemfileが作成されています。bundlerでgemをインストールするにはGemfileが配置されているディレクトリでコマンドを実行します。
$ bundle install