Ruby 3.0 をインストールする (dnf module) Rocky Linux8

最初に、dnf module listでインストールできるRubyのバージョンを確認します。

# dnf module list ruby
(一部省略)
Name                              Stream                               Profiles
ruby                              2.5 [d]                              common [d]
ruby                              2.6                                  common [d]
ruby                              2.7                                  common [d]
ruby                              3.0                                  common [d]

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

デフォルトでRuby 2.5がインストールされ、現時点では最新のバージョンとしては、3.0を選択できることが分かります。

Ruby 3.0を有効にします。

# dnf module enable ruby:3.0
Name                              Stream                               Profiles
ruby                              2.5 [d]                              common [d]
ruby                              2.6                                  common [d]
ruby                              2.7                                  common [d]
ruby                              3.0 [e]                              common [d]

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

再度、dnf module listで状況を確認してみます。Ruby 3.0 に[e]が表示されて有効になっていることが分かります。

この状態でdnfコマンドでrubyパッケージをインストールするとRuby 3.0がインストールされます。

# dnf install ruby

インストール完了後、Rubyのバージョンを確認します。

# ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]

同様の手順でdnf module listで表示されたRuby 2.6、2.7もインストールすることができます。

Rubyを最新ソースからインストールする (rbebv)

rbenvruby-buildプラグインを使用してRubyをインストールする方法を説明します。

パッケージのインストール

Rubyと標準添付ライブラリのコンパイルに必要なパッケージをyumでインストールします。
rootでyumコマンドを実行するか、sudoコマンド経由でyumを実行します。

sudo yum install -y git gcc make zlib-devel openssl-devel readline-devel libffi-devel

rbenvのインストール

あとは一般ユーザでコマンドを実行していきます。
rbenvとruby-buildプラグインをgithubのリポジトリからgit cloneします。

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

rbenvが利用できるようにbashの設定ファイルを編集します。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

ログインしなおしてbashの設定を反映させます。

rbenvが使用できるか確認しつつ、インストールできるRubyのバージョンを確認します。

rbenv install -l
2.6.10
2.7.6
3.0.4
3.1.2
jruby-9.3.4.0
mruby-3.0.0
rbx-5.0
truffleruby-22.1.0
truffleruby+graalvm-22.1.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.

インストールできるバージョンの中で最新の安定バージョンが表示されています。

ちなみに、インストールできる全てのバージョンを表示したい場合は、-Lオプションを指定します。

rbenv install  -L

ここでは、Ruby 3.1.2をインストールします。

Rubyのインストール

rbenv installコマンドにより、Rubyのソースのダウンロード、コンパイル、インストールを順次実行します。

rbenv install 3.1.2

インストールが完了したら、利用できるバージョンを確認してみます。

rbenv versions
* system
  3.1.2

これでRuby 3.1.2が利用できるようになりました。

現状ではまだパッケージでインストールしたRuby (system)が設定されています。

使用するRubyバージョンの設定

rbenv globalコマンドで3.1.2を使用する設定します。

rbenv global 3.1.2

Rubyのバージョンをrubyコマンドを実行して確認してみます。

ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

gemコマンドの実行

gemコマンドでpryをインストールしてみましょう。

gem install pry

ここで示した方法でrbenvをインストールした場合は~/.rbenv/以下にRubyやgemがインストールされるためgemコマンド実行の際にはroot権限やsudoコマンドが必要ありません。

which?

ではこのruby、gemはどこにあるのでしょうか? whichコマンドで調べてみます。

which ruby
~/.rbenv/shims/ruby
which gem
~/.rbenv/shims/gem

~/.rbenv/shims/以下のrubyとgemが実行されていることが分かります。これらのファイルはbashスクリプトです。実際にrbenvの設定によって実行される実体はrbenv whichによって確認出来ます。

rbenv which ruby
/home/user/.rbenv/versions/3.1.2/bin/ruby
rbenv which gem
/home/user/.rbenv/versions/3.1.2/bin/gem

複数のRubyのバージョンを利用できるrbenvの仕組みがなんとなく垣間見えたのではないでしょうか。

rbenv installで指定できるRubyバージョンの更新

最新のRubyがリリースされたら、~/.rbenv/plugins/ruby-build/git pullを実行することで、Rubyの新しいバージョンを試すことができます。

cd ~/.rbenv/plugins/ruby-build/
git pull
rbenv install -l
rbenv install 3.x.x
rbenv global 3.x.x

まとめ

これでrbenvによるRuby開発環境の構築が完了しました。

Rubyを最新ソースからインストールする (グローバルインストール)

Rubyをソースコードからシステムのグローバルにインストールする方法について説明します。

すでに、Rubyをパッケージでインストールしている場合は、事前にアンインストールしておきます。

yum remove ruby

Rubyをコンパイルするために必要なパッケージを、yumでインストールします。

yum -y install gcc make zlib-devel openssl-devel readline-devel libffi-devel

Rubyの最新のソースは、公式サイトからダウンロードしてください。

cd /usr/local/src
curl -O https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.2.tar.gz
tar zxvf ruby-3.1.2.tar.gz
cd ruby-3.1.2
./configure
make
make install

rubyコマンドを実行してバージョンを確認します。

ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

rubyコマンドはデフォルトで/usr/local/bin/rubyにインストールされますが、/usr/bin/rubyでも実行したい場合は、シンボリックリンクを作成しておきます。

ln -s /usr/local/bin/ruby /usr/bin/ruby