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をインストールする方法を説明します。
ここではrootではなく一般ユーザとしてインストールします。ただし、パッケージのインストールにはroot権限が必要となります。

Rubyのビルドに必要なパッケージをインストールする

Rubyのビルド(コンパイル)に必要なパッケージをdnfでインストールします。

$ sudo dnf install tar git gcc make zlib-devel openssl-devel readline-devel libffi-devel libyaml-devel

rbenvをインストールする

rbenvとruby-buildプラグインをgithubのリポジトリからgit cloneします。

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

rbenvコマンドが利用できるようにrbenv initサブコマンドを実行します。ここではBashを利用しているので、~/.bash_profileに設定が追加されました。

$ ~/.rbenv/bin/rbenv init
writing ~/.bash_profile: now configured for rbenv.

「ログインしなおす」などによってBashの設定を反映させます。

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

$ rbenv install -l
3.1.6
3.2.5
3.3.4
jruby-9.4.8.0
mruby-3.3.0
picoruby-3.0.0
truffleruby-24.0.2
truffleruby+graalvm-24.0.2

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

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

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

$ rbenv install  -L

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

Rubyをビルドしてインストールする

rbenv installコマンドにより、Rubyのソースのダウンロード、ビルド、インストールを順次実行します。(Rubyのビルドには時間がかかります。ビルド時間は実行環境によって異なります。)

$ rbenv install 3.3.4
==> Downloading ruby-3.3.4.tar.gz...
-> curl -q -fL -o ruby-3.3.4.tar.gz https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.4.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21.0M 100 21.0M 0 0 40.5M 0 --:--:-- --:--:-- --:--:-- 40.4M
==> Installing ruby-3.3.4...
-> ./configure "--prefix=$HOME/.rbenv/versions/3.3.4" --enable-shared --with-ext=openssl,psych,+
-> make -j 2
-> make install
==> Installed ruby-3.3.4 to /home/user/.rbenv/versions/3.3.4

NOTE: to activate this Ruby version as the new default, run: rbenv global 3.3.4

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

$ rbenv versions
* system
3.3.4

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

現状では、パッケージでインストールしたRuby (system)がグローバルで利用するバージョンとして指定されています。

グローバルで使用するRubyのバージョンを設定する

rbenv globalコマンドで3.3.4をグローバルで使用するバージョンとして設定します。

$ rbenv global 3.3.4

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

$ ruby -v
ruby 3.3.4 (2024-07-09 revision be1089c8ec) [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.3.4/bin/ruby
$ rbenv which gem
/home/user/.rbenv/versions/3.3.4/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