LINEで現役エンジニアに直接質問してみよう!登録無料

rbenvでruby環境のインストール方法(Amazon Linux)

Linux環境でRubyを使うには、「yum」「rbenv」「rvm」など色々な方法があり、それぞれのツールで使い勝手が異なります。

今回は、rbenvに絞って、Amazon Linuxにインストールする方法を紹介します。

rbenvのインストール方法

結論から言うと、rbenvをインストールするには、下記のツールやライブラリが必要です。

  • git: 一番有名なソースコード管理ツール
  • gcc: rubyをコンパイルしてビルドするため
  • openssl-devel: Ruby内で暗号化に関するライブラリで使うため
  • readline-devel: Ruby内のコマンドラインに関するライブラリで使うため
  • zlib-devel: Ruby内の圧縮に関するライブラリで使うため

まず、これらのライブラリをインストールしましょう。

$ yum install -y git gcc openssl-devel readline-devel zlib-devel

その後、rbenv本体と、rbenv installをサポートするため(rubyをビルドするため)のコマンドをインストールします

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

更に、インストールしたこれらのコマンドが使えるように、「パス」というものを通します。

# rbenvコマンドを使えるようにするために、パスを「~/.bash_profile」に追加
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

# rbenvを初期化する初期化するため「~/.bash_profile」に追加
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

# ~/.bash_profileを再読み込み
exec $SHELL -l

ここまでで、下記のコマンドを実行してみて、「support: not found」とかが表示れていなければ、全て正常にインストール出来ています。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

これで、rbenvのインストールは完了です! 次章では、これらの実行したコマンドについて詳細に解説していきますね!

rbenvのインストール手順内容の詳細

前章で、rbenvのインストール方法を一気に解説しましたが、ここではその内容を1つ1つ細かく解説します。今回は、5つのステップ分けて紹介します。

  1. gitをインストールする
  2. rbenvをインストールする
  3. rbenv-buildをインストールする
  4. gccコンパイラをインストールする
  5. Rubyビルド必要なライブラリをインストールする

ここまでくれば、rbenv install 2.7.0などを実行すれば、任意のバージョンのRubyをインストール出来る環境が出来ます!

gitをインストールする

rbenvはgitを使ってインストールを行うので、まずはgitをインストールしましょう!

バージョンは何でもOKです。まだインストールしていない場合は、yumを使ってインストール出来ます。

$ sudo yum install -y git

「Complete!」と表示されれば、正しくインストール出来ています。実際に、下記のコマンドを実行して、インストール出来ているか確認してみましょう!

$ git --version
git version 2.23.1

今回だと、2.23.1というバージョンのgitがインストール出来ました。

rbenvをインストールする

いよいよ、rbenvをインストールします。

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv

だた、この状態ではRubyの環境を管理するだけで、Rubyコマンド等のインストールを行うことは出来ませんruby-buildというツールをインストールして初めてrbenv installでインストールが可能になるので注意しましょう。

rbenvの設定する

次に、実際にrbenvコマンドをシステムが認識してくれるように、.bash_profileに設定を追記します。.bash_profileは、「bash」と呼ばれるソフトで使われる設定です。

# rbenvコマンドを使えるようにするために、パスを「~/.bash_profile」に追加
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

# rbenvを初期化する初期化するため「~/.bash_profile」に追加
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

# ~/.bash_profileを再読み込み
exec $SHELL -l

rbenvがインストール出来ているか確認する

$ rbenv --version
rbenv 1.1.2-20-g143b2c9

rbenvのインストールの進捗状況が確認できるツールがある

ここまでで、設定できている項目を確認してみましょう。実行すると、rbenvの状態が一覧で確認出来ます。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for 'rbenv' in PATH: /home/ec2-user/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking 'rbenv install' support: not found
Unless you plan to add Ruby versions manually, you should install ruby-build.
Please refer to https://github.com/rbenv/ruby-build#installation

Counting installed Ruby versions: none
  There aren't any Ruby versions installed under '/home/ec2-user/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK

注目してほしい部分は「Checking 'rbenv install' support: not found」と書かれているところです。「not found」と書かれていることから分かる通り、この状態ではライブラリが足りないため、rbenv installを実行出来ません。

次の章にて、rbenv installが使えるようにします。

rbenvでinstallが使えるようにする

ruby-buildのインストール方法は簡単で、下記のコマンドを実行するだけです。

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

ruby-buildがインストール出来ると、rbenv installが実行できるので、確認してみましょう。

$ rbenv install --version
ruby-build 20200115-8-g73b926b

rbenvからRubyをインストール

ここからrbenvを使って実際にrubyをインストールします。

まずはインストール出来るバージョンを確認しましょう

$ rbenv install -l
1.8.5-p52
1.8.5-p113
.
.
2.7.0-rc2
2.7.0
2.8.0-dev
.
.
truffleruby-19.3.1

今回は、最新の安定版である2.7.0をインストールしたいと思います。

$ rbenv install 2.7.0

トラブル解決1: Cコンパイラが無くて怒られてしまう

このコマンドを実行すると、Cコンパイラがなくて怒られてしまう場合があります。

$ rbenv install 2.7.0
Downloading ruby-2.7.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.7.0.tar.bz2
Installing ruby-2.7.0...

BUILD FAILED (Amazon Linux 2 using ruby-build 20200115-8-g73b926b)

Inspect or clean up the working tree at /tmp/ruby-build.20200204022406.24162.1QhApr
Results logged to /tmp/ruby-build.20200204022406.24162.log

Last 10 log lines:
checking for ruby... false
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/ruby-build.20200204022406.24162.1QhApr/ruby-2.7.0':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

その場合はCコンパイラをインストールしましょう!

Cコンパイラにはgccを使うのが一般的です。

$ sudo yum install -y gcc

もう一度インストールしてみます

$ rbenv install 2.7.0

トラブル解決2: opensslreadline等のライブラリが無くて怒られてしまう

openssl-devel readline-devel zlib-develがインストールされていないと、下記のようにエラーになる

ERROR: Ruby install aborted due to missing extensions
  Try running `yum install -y openssl-devel readline-devel zlib-devel` to fetch missing dependencies.
エラー全文
Downloading ruby-2.7.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.7.0.tar.bz2
Installing ruby-2.7.0...

BUILD FAILED (Amazon Linux 2 using ruby-build 20200115-8-g73b926b)

Inspect or clean up the working tree at /tmp/ruby-build.20200204033340.3295.pwd8rJ
Results logged to /tmp/ruby-build.20200204033340.3295.log

Last 10 log lines:
The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running yum install -y openssl-devel readline-devel zlib-devel to fetch missing dependencies.

Configure options used:
  --prefix=/home/ec2-user/.rbenv/versions/2.7.0
  --enable-shared
  LDFLAGS=-L/home/ec2-user/.rbenv/versions/2.7.0/lib 
  CPPFLAGS=-I/home/ec2-user/.rbenv/versions/2.7.0/include

このようになった場合は、指示の通りyum install -y openssl-devel readline-devel zlib-develを実行して、関連ライブラリをインストールする

$ sudo yum install -y openssl-devel readline-devel zlib-devel

もう一度、rubyをインストールする

$ rbenv install 2.7.0
Downloading ruby-2.7.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.7.0.tar.bz2
Installing ruby-2.7.0...
Installed ruby-2.7.0 to /home/ec2-user/.rbenv/versions/2.7.0

今回は無事にインストール出来ました

$ rbenv versions
2.7.0

インストールしたrubyをコマンドから使えるようにする

前章でruby 2.7.0をインストールしましたが、まだインストールをしただけで、コマンドまでのパスが通っていないので、使うことが出来ません。

下記の設定でパスを通して、実際にコマンドを実行出来るようにします。

システム全体で使えるように、使うバージョンを設定します

$ rbenv global 2.7.0

もう一度rbenv versionsを実行すると「*」が付いていることが確認出来ます。これでrubyコマンドを実行した時に2.7.0のrubyを使うことが出来ます。

$ rbenv versions
* 2.7.0 (set by /home/ec2-user/.rbenv/version)

rbenvの使い方

ここで、rbenvの使い方を少し確認します。

インストール出来るバージョンを確認

$ rbenv install -l

有効にするrubyバージョンを指定

$ rbenv global 2.7.0

有効にするrubyバージョンをディレクトリごとに指定

カレントディレクトリに.ruby-versionというファイルが生成され、中身にrubyのバージョンが記述されます。

もし、そのカレントディレクトリになったときに、Rubyのバージョンが自動的に変更されます。

$ rbenv local 2.7.0

有効になっているrubyのバージョンを確認

今有効になっているrubyのバージョンを「*」付きで確認出来ます。同時にrbenvでインストールされているrubyのバージョン一覧も確認できます。

$ rbenv versions

Rubyのアンインストール

下記コマンドでRubyのアンインストール出来ます。

$ rbenv uninstall 2.7.0
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。