Red Hat系LinuxにrbenvとRubyをインストールする方法

前提

書くこと/書かないこと

Red Hat系のLinuxにRubyをインストールする方法を書きます。
Rubyはrbenvを使ってバージョン切り替えができるようにします。
今回の環境はAlmaLinux 9ですが、CentOSなどでも同様の手順でインストールできるはずです。

環境

AlmaLinux release 9.0 (Emerald Puma)
rbenv 1.2.0-16-gc4395e5
Ruby 3.1.2

作業手順

必要なモジュールのインストール

今回のインストールに必要になるモジュールを先にインストールしておきます。

# dnf install perl zlib-devel openssl-devel
(省略)
完了しました!

rbenvのインストール

githubからクローンします。

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
bash: git: command not found...
Install package 'git-core' to provide command 'git'? [N/y] y


 * Waiting in queue... 
 * Loading list of packages.... 
The following packages have to be installed:
 git-core-2.31.1-2.el9.2.x86_64	Core package of git with minimal functionality
Proceed with changes? [N/y] y


 * Waiting in queue... 
 * Waiting for authentication... 
 * Waiting in queue... 
 * Downloading packages... 
 * Requesting data... 
 * Testing changes... 
 * Installing packages... 
Cloning into '/home/alma/.rbenv'...
remote: Enumerating objects: 3017, done.
remote: Counting objects: 100% (121/121), done.
remote: Compressing objects: 100% (70/70), done.
remote: Total 3017 (delta 64), reused 93 (delta 51), pack-reused 2896
Receiving objects: 100% (3017/3017), 607.34 KiB | 3.16 MiB/s, done.
Resolving deltas: 100% (1873/1873), done.

rbenvにパスを通す

初期状態ではコマンド名だけではrbenvを見つけられないため、パスを通します。
bash_profileにパスを追記した後、sourceコマンドでbash_profileの更新を即時反映して動作確認まで実施します。

$ rbenv
bash: rbenv: command not found...
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv 
rbenv 1.2.0-16-gc4395e5
Usage: rbenv <command> [<args>]

Some useful rbenv commands are:
   commands    List all available rbenv commands
   local       Set or show the local application-specific Ruby version
   global      Set or show the global Ruby version
   shell       Set or show the shell-specific Ruby version
   rehash      Rehash rbenv shims (run this after installing executables)
   version     Show the current Ruby version and its origin
   versions    List installed Ruby versions
   which       Display the full path to an executable
   whence      List all Ruby versions that contain the given executable

See `rbenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/rbenv/rbenv#readme

これでパスが通ったことの確認が出来ました。
rbenv 1.2.0-16-gc4395e5がインストールされています。

ruby-buildのインストール

githubからクローンします。

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

rbenvの初期化と最新版Rubyのインストール

まずはrbenvを初期化します。

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.bash_profile:

eval "$(rbenv init - bash)"

画面の表示に従ってbash_profileの末尾に追記します。

$ echo 'eval "$(rbenv init - bash)"' >> ~/.bash_profile
$ source ~/.bash_profile

rubyのインストール

インストールできるバージョンを確認します。

$ rbenv install --list
2.6.10
2.7.6
3.0.4
3.1.2
jruby-9.3.7.0
mruby-3.1.0
picoruby-3.0.0
rbx-5.0
truffleruby-22.2.0
truffleruby+graalvm-22.2.0

3.1.2が使えるようなので、折角なので最新版をインストールすることにします。

$ rbenv install 3.1.2
To follow progress, use 'tail -f /tmp/ruby-build.20220818134108.38153.log' or pass --verbose
No system openssl version was found, ensure openssl headers are installed (https://github.com/rbenv/ruby-build/wiki#suggested-build-environment)
Downloading openssl-3.0.5.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/aa7d8d9bef71ad6525c55ba11e5f4397889ce49c2c9349dcea6d3e4f0b024a7a
Installing openssl-3.0.5...
Installed openssl-3.0.5 to /home/alma/.rbenv/versions/3.1.2

Downloading ruby-3.1.2.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.2.tar.gz
Installing ruby-3.1.2...
Installed ruby-3.1.2 to /home/alma/.rbenv/versions/3.1.2

バージョン設定と確認

インストールが完了したのでglobalバージョンに指定し、rubyのバージョン確認までを実施します。

$ rbenv global 3.1.2
$ rbenv version
3.1.2 (set by /home/alma/.rbenv/version)
$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

これでrbenvとRubyのインストールが完了しました。