LoginSignup
43
48

More than 5 years have passed since last update.

Ubuntuでのrbenv,ruby-buildの使い方と事前準備に必要なaptパッケージ

Last updated at Posted at 2018-05-01

この記事について

Linux に rbenv, ruby-build を使う機会が多いが、rbenv install x.y.z してからパッケージが足りないことに気が付がついて1つずつインストールしていると時間の無駄なので備忘録としてまとめたもの。

'19/02/05 追記
ruby-build の wikiに各OSに応じてインストールを推奨するシステムパッケージ一覧が紹介されていました。そのため、本記事のメインであるまとめは無用と分かりました。orz
皆さん、本家を参照しましょう。

(本記事を参照して頂いた人への共有の意味を込めてパッケージインストール部の記事は残しますが、将来的に本家wikiへのリンクのみへ修正する予定です)

はじめに - rbenv, ruby-build とは

rbenv とは

rbenv とは Ruby を使った製品において、必要となる Ruby バージョンを固定するための Ruby バージョン管理ツールである。
(Ruby 以外にも irb, gem, rake, rails のバージョンも固定できる)

rbenv をインストールするとファイル .ruby-version が存在するディレクトリ配下において Ruby コマンドを実行した時のバージョンを指定する。(rbenv をローカル指定でバージョン固定する場合)

rbenv の仕組み

特定のディレクトリに寄らず利用する Ruby バージョンを固定する場合はシェル単位又はグローバルに設定することも可能である。シェル単位で指定する場合は環境変数 RBENV_VERSION 又は rbenv shell X.Y.Z により指定する。グローバルに指定する場合は、 rbenv global 又は ~/.rbenv/version により指定する。
(優先順位は rbenv#choosing-the-ruby-version を参照)

rbenv は環境変数 PATH に Ruby インストール先よりも優先度の高い順番として仮 ruby コマンドを指定し、その中でバージョンの制御を行う。(詳細な動作はrbenv#how-it-worksを参照)

rbenv はあくまで Ruby バージョンを固定するためのアプリケーションなので、その他、任意のバージョンの Ruby をインストールするためには別途 Ruby を ruby-build を使ってビルドする必要がある。
(rbenv をインストール → ruby インストール → rbenv によるバージョン指定という流れ)

ruby-build とは

ruby-build は Ruby をバージョンごとに異なるディレクトリにビルドするためのツールであり、rbenv の plugin としても動作させることが出来る。

rbenv, ruby-build をインストールする対象の環境

Ubuntu Server 16系で確認。
Windows の WSL 環境の Ubuntu でも同様。

インストールしておく必要のある apt パッケージ

インストールコマンド

'19/02/05 追記
ruby-build の wikiに各OSに応じてインストールを推奨するシステムパッケージ一覧が紹介されていました。

インストールコマンド
# Depending on your version of Ubuntu/Debian/Mint, libgdbm5 won't be available. In that case, try with libgdbm3.
$ apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev

rbenv, ruby-build のインストール方法

rbenvのインストール方法
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ ~/.rbenv/bin/rbenv init  # 出力される指示に従う
$ source ~/.bash_profile

rbenv コマンドリスト

Rubyインストール・アンインストール

インストールされたRubyバージョン一覧を確認する
$ rbenv versions
インストールできるRubyバージョン一覧を確認する
$ rbenv install -l
インストールできるRubyバージョン一覧を更新する
$ cd $(dirname `which rbenv`) && git pull  # rbenv のリポジトリを最新化している ※bashで動作確認済
特定のRubyバージョンをインストールする
$ rbenv install X.Y.Z
特定のRubyバージョンをアンインストールする
$ rbenv uninstall X.Y.Z

※ ~/.rbenv/versions/X.Y.Z を消してもよい

Rubyバージョン指定

特定のディレクトリ配下で実行するRubyバージョンを固定する
$ cd ${固定化したいディレクトリへのパス}
$ rbenv local X.Y.Z  # ./.ruby-version ファイルが作成される
実行しているシェル単位で実行するRubyバージョンを固定する
$ rbenv shell X.Y.Z  # 環境変数 `RBENV_VERSION` が設定される
グローバルに実行するRubyバージョンを固定する(ユーザ単位)
$ rbenv global X.Y.Z  # ~/.rbenv/version ファイルが作成される

Rubyバージョン確認

現在のディレクトリで実行されるRubyバージョンを確認する
$ cd ${調べたい対象のディレクトリ配下へ移動する}
$ ruby -v
特定のディレクトリ配下で固定化されているRubyバージョンを確認する
$ cd ${固定化したいディレクトリへのパス}
$ rbenv local
実行しているシェル単位で固定化されているRubyバージョンを確認する
$ rbenv shell
グローバルで固定化されているRubyバージョンを確認する(ユーザ単位)
$ rbenv global

関連情報

本記事に対する編集リクエストを受けて修正した履歴とお礼

編集リクエストを頂いた皆様に感謝致します。

  • nak1114 さんより libyaml-dev が必要なVersionがあるとのリクエストを頂きました
43
48
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
48