[Ruby] Rubyのインストール(OSあれこれ)
はじめに
Rubyのインストール方法を、様々なOSについてまとめています(いきます)。ここに載せているのは、すべてクリーンインストール直後のOSで動作確認したものです。(逆に言うと、動作確認してないものはまだ載せていません。)
Rubyを触ってみたいな、と思っている方は、ぜひ手順をなぞってみて、インストールしてみてください!
Linux/UNIX系OSについては、rbenvが便利で好きなので、本記事では、rbenvを使った具体的なRubyのインストール手順を載せています。
(本記事のモチベーションは、注意を払うところに書いたとおりです。)
また、せっかくなので、本記事のほとんどで使うrbenvに関して、以下についてもおまけで書いています:
-
rbenvを使っていて、「新しいRubyのバージョンが
rbenv install
の候補に出て来ない!」ということがあります。【rbenv install
で、最近リリースされた新しいRubyのバージョンが候補に出て来ない場合】の項を参照してください -
インストールしたrbenvのアップグレード方法を、【rbenvのアップグレード方法】に書いています(rbenvのREADMEで事足りますが、一応)
-
rbenvの「バージョン管理ツールとしてどう使うのか(どう嬉しくなるのか)」の部分について、【(おまけ)Rubyのバージョン管理をするとどう嬉しいのか・rbenvでの方法】に書いています。rbenvの使い方・バージョン管理についてよくイメージできないなという方は、少し読んでみてください
OSごとの大雑把なRubyインストール方針まとめ
-
Windows:Ruby公式のインストールページで案内されているように、RubyInstallerを使えばいいです。
-
Linux/UNIX:rbenvが使いやすくておすすめです。
次のステップで作業をしていきます:
- rbenvをインストール
- rbenvを使ってRubyをインストール
OSについては、以下について記載しています:
-
macOS(まだ):Macほしい。rbenvが使えるので、READMEのインストールの項を参考にしてください。
もうちょっと丁寧な補足
READMEの
- Set up rbenv in your shell.
rbenv init
あたりからは、本記事のLinux/UNIX系統でごちゃごちゃ説明しているところの「rbenvのインストール > rbenv-installerの実行・rbenv-doctorで状態確認」のコード例の、PATHの設定と同じ流れのはずです。
ただし、
- Bashでは無いと思うので、
.bash_profile
に書き込む例は参考にしないでください。.profile
かな?持ってないから知らん。 - Rubyのコンパイル時に、Debianでいうところの
libssl-dev
,zlib1g-dev
に相当するライブラリが必要になるかもです。Rubyコンパイル時のエラーメッセージを読んでください。(本来それを避けるためのが本記事の主目的ですが...持ってないからわからん。)
注意を払うところ
Linux/UNIX系OSでは、Rubyのインストールに関係している部分では、以下がOSごとに異なっています。
- シェルの種類(Bash, zsh, ...)
- rbenvの
PATH
設定を書き込む先は~/.profile
なのか~/.bash_profile
なのか- 基本的にどちらか一方だけが採用されているはずなので、ホームディレクトリで
ls -a
して存在している方を使えばよいです
- 基本的にどちらか一方だけが採用されているはずなので、ホームディレクトリで
- パッケージマネージャの種類(apt, yum, zypper, ...)
- 初期状態で入っているツール、ライブラリ(git, make, ...)
- Rubyコンパイル時に必要になるライブラリパッケージの名前(
libssl-dev
oropenssl-devel
, ...)
この辺の差異を毎度考えずに済むようにするのが、本記事の一番のモチベーションです。
本記事に載っていないOSで近いものを参考にする場合は、上記のポイントがそのOSではどうなっているかを確認して対応してください。
その他には、
- インストールするRubyのバージョン例は、記事執筆時点(2022/05/01)の最新である
3.1.2
としています。各自適当に変更してください - (Rubyではなく)rbenvのインストールの際、ソースビルドではなくrbenv-installerを使ったインストールを行います
- ちょっとわかりづらいですが、rbenvのREADMEのBasic GitHub Checkoutのソースビルドの手順説明の冒頭に、「オートマチックなインストールにrbenv-installerが使える」旨が書いてあります。
-
rbenv install
のあとのバージョン指定は、便利なことにTab補完が効きます。連打しましょう- もっと言うと、
rbenv global
やrbenv local
も、Tab補完が効きます
- もっと言うと、
-
rbenv install
コマンドに-v
オプションをつけて実行しています- デフォルトだと静かなまま割と待つことになるので、「あれ、sshセッション切れた?」などの不安が湧いてくるからです
初心者の方へ:長いので以下に畳みます。
初心者の方へ
-
コマンド例
$ foo bar --baz
の$
はプロンプトですので、実際に入力するのはfoo bar --baz
の部分だけです。- 幾つか参考のために、コマンドの出力まで掲載しています。
$
から始まる1行分のコマンド部分だけ入力&Enter押下で実行してください。
- 幾つか参考のために、コマンドの出力まで掲載しています。
-
<コマンド> --version
は、そのコマンドのインストールが成功したかどうかを確認するために打っています。(--version
オプションは、無害かつ基本的にどのコマンドも備えているため、この用途でもよく使われています。)インストールのタイミングによってコマンドの実際のバージョンが本記事と異なる可能性がありますが、そこは気にしないでください。
-
ちなみに、コマンドがインストールされていない場合は、以下のような「コマンドが見つかりません」系のエラーが出てきます:
Ubuntu 20.04の場合$ foo --version Command 'foo' not found, did you mean: command 'goo' from deb goo (0.155+ds-1) command 'fio' from deb fio (3.16-1) command 'fop' from deb fop (1:2.4-2) Try: sudo apt install <deb name>
-
-
Linux/UNIX系OSのパッケージマネージャ(yum, apt, zypperなど)は、インストールコマンド(例:
sudo yum install
)を使う前に、必ずパッケージインデックス情報(雑に言えば、どこからどうやってパッケージを引っ張ってくるかの情報)をアップデートコマンド(例:sudo yum update
)で最新のものにしておきましょう
Windows
Azure VMのWindowsで動作確認をしたものです(2022年5月4日時点)。
Windows 10
作業例のユーザアカウント名はshuichi
にしています。
OS情報
エディション:Windows 10 Pro
バージョン:21H2
OSビルド:19044.1645
設定 > システム > 詳細情報
RubyInstallerのダウンロード・セットアップウィザードの起動
-
RubyInstallerのページに行き、『Download』をクリック
-
『WITH DEVKIT』の一番上におすすめされている「Ruby+Devkit」のリンクをクリック(例では64bit PCなので、x64版をダウンロード)
-
ダウンロードしたrubyinstaller-devkit-<バージョン>-x64.exeを実行する
Ruby(+MSYS2, MINGW)のインストール
セットアップウィザード
-
Ruby <バージョン>-x64-ucrt with MSYS2 License Agreement:
「I accept the License」を選択して、「Next」ボタンをクリック
-
Installation Destination and Optional Tasks:
デフォルトのままでよいです。以下を確認して、「Install」ボタンをクリック
- インストールフォルダ:(例:
C:\Ruby31-x64
) - 「Add Ruby executables to youe PATH」にチェック
- 「Associate .rb and .rbw files with this Ruby installation」にチェック
スクリーンショット
- インストールフォルダ:(例:
-
Select Components:
デフォルトのままでよいです。以下を確認して、「Next」ボタンをクリック
- 「Ruby-<バージョン> base files」にチェック
- 「Ruby RI and HTML documentation」にチェック
- 「MSYS2 development toolchain <日付>」にチェック
スクリーンショット
-
インストールが始まります。Installing画面で進捗を見守りましょう
-
完了画面では、「Run 'ridk install' to set up MSYS2 and development toolchain.」にチェックが入っていることを確認し、「Finish」ボタンをクリック
スクリーンショット
RubyInstallerでRuby(+MSYS2, MINGW)のインストール
コマンドプロンプトでRubyInstallerが起動します。
-
「Which components shall be installed? ...」で、何も入力せずにそのままEnterキーを押下(1, 3が選択された状態で実行されます)
スクリーンショット
-
色々な処理が走るので、待ちます
スクリーンショット
文字化けが起きた場合
インストール処理時に、Windowsのシステムロケールの設定が日本語環境になっていなかった場合、出力に文字化けが起こります。
が、インストール処理に影響はないので、ひとまずは無視して続行して大丈夫です。(とはいえ、Rubyを使う際にまた文字化けに悩むことになるので、このあと設定の変更を行ったほうが良いでしょう。)
ちなみに、コマンドプロンプトの文字コード設定は、コマンドプロンプトのタイトルバー部分を右クリック > Properties(プロパティ)> 『現在のコードページ』から確認できます。
「932 (ANSI/OEM - 日本語 Shift-JIS)」以外だと、文字化けが起こります。 -
コマンドプロンプトが大人しくなって、表示をよく読んでみてみると、インストールに成功して、1で見た選択肢が再度出てきていることがわかります。
何も入力せずにそのままEnterキーを押下します(何も選択されていない状態で実行->RubyInstallerが終了します)スクリーンショット
Linux/UNIX系OS
ベアメタル
まだ。今後掲載予定
WSL2
[WSL2] Ubuntu 22.04 LTS
作業例のユーザ名はubuntu
にしています。
OS情報
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
rbenvのインストール
-
aptのリポジトリ情報の更新
$ sudo apt update -y # (出力は省略)
-
rbenv-installerの実行・rbenv-doctorで状態確認
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash # (出力は省略) # PATHの設定 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile $ echo 'eval "$(rbenv init - bash)"' >> ~/.profile $ source ~/.profile # rbenv-doctorで状態確認 $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-doctor | bash Checking for `rbenv' in PATH: /home/ubuntu/.rbenv/bin/rbenv Checking for rbenv shims in PATH: OK Checking `rbenv install' support: /home/ubuntu/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220426) Counting installed Ruby versions: none There aren't any Ruby versions installed under `/home/ubuntu/.rbenv/versions'. You can install Ruby versions like so: rbenv install 3.1.2 Checking RubyGems settings: OK Auditing installed plugins: OK $ rbenv --version rbenv 1.2.0-14-gc6cc0a1
Rubyのインストール
-
build-essential
のインストール(Rubyのコンパイルに必要)$ sudo apt install -y build-essential # (出力は省略)
-
libssl-dev
,zlib1g-dev
のインストール(Rubyのコンパイルに必要)$ sudo apt install -y libssl-dev zlib1g-dev # (出力は省略)
「Daemons using outdated libraries」の画面が表示された場合
Tabキーを押して、
<Ok>
にカーソルを合わせて、Enterキーを押せばよいです。(本番環境などの大事な環境では、しっかり表示内容をチェックしてください。) -
Rubyのインストール
$ rbenv install -v 3.1.2 # (中略) Installed ruby-3.1.2 to /home/ubuntu/.rbenv/versions/3.1.2 # (以後省略) # rubyコマンドで起動するバージョンを設定 $ rbenv global 3.1.2 $ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
[WSL2] Kali Linux 2022.1
作業例のユーザ名はkali
にしています。
OS情報
$ cat /etc/os-release
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2022.1"
VERSION_ID="2022.1"
VERSION_CODENAME="kali-rolling"
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
rbenvのインストール
-
aptのリポジトリ情報の更新
$ sudo apt update -y # (出力は省略)
-
gitのインストール
$ sudo apt install -y git # (出力は省略) $ git --version git version 2.35.1
-
rbenv-installerの実行・rbenv-doctorで状態確認
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash # (出力は省略) # PATHの設定 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile $ echo 'eval "$(rbenv init - bash)"' >> ~/.profile $ source ~/.profile # rbenv-doctorで状態確認 $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-doctor | bash Checking for `rbenv' in PATH: /home/kali/.rbenv/bin/rbenv Checking for rbenv shims in PATH: OK Checking `rbenv install' support: /home/kali/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220426) Counting installed Ruby versions: none There aren't any Ruby versions installed under `/home/kali/.rbenv/versions'. You can install Ruby versions like so: rbenv install 3.1.2 Checking RubyGems settings: OK Auditing installed plugins: OK $ rbenv --version rbenv 1.2.0-14-gc6cc0a1
Rubyのインストール
-
build-essential
のインストール(Rubyのコンパイルに必要)$ sudo apt install -y build-essential # (出力は省略)
-
libssl-dev
,zlib1g-dev
のインストール(Rubyのコンパイルに必要)$ sudo apt install -y libssl-dev zlib1g-dev # (出力は省略)
-
Rubyのインストール
$ rbenv install -v 3.1.2 # (中略) Installed ruby-3.1.2 to /home/kali/.rbenv/versions/3.1.2 # (以後省略) # rubyコマンドで起動するバージョンを設定 $ rbenv global 3.1.2 $ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
AWS EC2
作業例のユーザは、デフォルトの Linux システムユーザーアカウントにしています(Amazon Linux 2ならec2-user
)。
(ついでに、Linuxユーザアカウントを追加作成する方法は、こちらに載っています。)
[EC2] Amazon Linux 2
OS情報
AMI名:amzn2-ami-kernel-5.10-hvm-2.0.20220419.0-x86_64-gp2
AMI ID:ami-0bcc04d20228d0cf6
$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
rbenvのインストール
-
yumのリポジトリ情報の更新
$ sudo yum update -y # (出力は省略)
-
gitのインストール
$ sudo yum install -y git # (出力は省略) $ git --version git version 2.32.0
-
rbenv-installerの実行・rbenv-doctorで状態確認
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash # (出力は省略) # PATHの設定 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init - bash)"' >> ~/.bash_profile $ source ~/.bash_profile # rbenv-doctorで状態確認 $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/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: /home/ec2-user/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220426) 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 3.1.2 Checking RubyGems settings: OK Auditing installed plugins: OK $ rbenv --version rbenv 1.2.0-14-gc6cc0a1
Rubyのインストール
-
gccのインストール(Rubyのコンパイルに必要)
$ sudo yum install -y gcc # (出力は省略) $ gcc --version gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-14) # (以後省略)
-
openssl-devel
,zlib-devel
のインストール(Rubyのコンパイルに必要)$ sudo yum install -y openssl-devel zlib-devel # (出力は省略)
-
Rubyのインストール
$ rbenv install -v 3.1.2 # (中略) Installed ruby-3.1.2 to /home/ec2-user/.rbenv/versions/3.1.2 # (以後省略) # rubyコマンドで起動するバージョンを設定 $ rbenv global 3.1.2 $ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
[EC2] Ubuntu Server 22.04 LTS
OS情報
AMI名:ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-20220420
AMI ID:ami-081ce1b631be2b337
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
rbenvのインストール・Rubyのインストール
[WSL2] Ubuntu 22.04 LTSの手順と同じです。
[EC2] Ubuntu Server 20.04 LTS
OS情報
AMI名:ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20220419
AMI ID:ami-0a3eb6ca097b78895
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
rbenvのインストール・Rubyのインストール
[WSL2] Ubuntu 22.04 LTSの手順と同じです。
[EC2] Ubuntu Server 18.04 LTS
OS情報
AMI名:ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-20220411
AMI ID:ami-07d9583de36e83d10
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.6 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.6 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
rbenvのインストール・Rubyのインストール
[WSL2] Ubuntu 22.04 LTSの手順と同じです。
[EC2] Red Hat Enterprise Linux 8
OS情報
AMI名:RHEL-8.5_HVM-20220127-x86_64-3-Hourly2-GP2
AMI ID:ami-00c8dfcb0b542ee0c
$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.5 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.5"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.5 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.5
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.5"
rbenvのインストール
[EC2] Amazon Linux 2の手順と同じですが、次のRubyのインストール手順がわずかに異なるので、rbenvのインストールについても記載しておきます。
-
yumのリポジトリ情報の更新
$ sudo yum update -y # (出力は省略)
-
gitのインストール
$ sudo yum install -y git # (出力は省略) $ git --version git version 2.27.0
-
rbenv-installerの実行・rbenv-doctorで状態確認
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash # (出力は省略) # PATHの設定 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init - bash)"' >> ~/.bash_profile $ source ~/.bash_profile # rbenv-doctorで状態確認 $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/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: /home/ec2-user/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220426) 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 3.1.2 Checking RubyGems settings: OK Auditing installed plugins: OK $ rbenv --version rbenv 1.2.0-14-gc6cc0a1
Rubyのインストール
-
gcc, makeのインストール(Rubyのコンパイルに必要)
$ sudo yum install -y gcc make # (出力は省略) $ gcc --version gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) # (以後省略) $ make --version GNU Make 4.2.1 Built for x86_64-redhat-linux-gnu # (以後省略)
-
openssl-devel
,zlib-devel
のインストール(Rubyのコンパイルに必要)$ sudo yum install -y openssl-devel zlib-devel # (出力は省略)
-
Rubyのインストール
$ rbenv install -v 3.1.2 # (中略) Installed ruby-3.1.2 to /home/ec2-user/.rbenv/versions/3.1.2 # (以後省略) # rubyコマンドで起動するバージョンを設定 $ rbenv global 3.1.2 $ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
[EC2] SUSE Linux Enterprise Server 15 SP3
OS情報
AMI名:suse-sles-15-sp3-v20211219-hvm-ssd-x86_64
AMI ID:ami-0057dcd449e124349
$ cat /etc/os-release
NAME="SLES"
VERSION="15-SP3"
VERSION_ID="15.3"
PRETTY_NAME="SUSE Linux Enterprise Server 15 SP3"
ID="sles"
ID_LIKE="suse"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:suse:sles:15:sp3"
DOCUMENTATION_URL="https://documentation.suse.com/"
rbenvのインストール
-
zypperのリポジトリ情報の更新
$ sudo zypper refresh # (出力は省略)
-
gitのインストール
$ sudo zypper install -y git # (出力は省略) $ git --version git version 2.34.1
-
rbenv-installerの実行・rbenv-doctorで状態確認
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash # (出力は省略) # PATHの設定 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile $ echo 'eval "$(rbenv init - bash)"' >> ~/.profile $ source ~/.profile # rbenv-doctorで状態確認 $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/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: /home/ec2-user/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220426) 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 3.1.2 Checking RubyGems settings: OK Auditing installed plugins: OK $ rbenv --version rbenv 1.2.0-14-gc6cc0a1
Rubyのインストール
-
devel_basis
パターンをインストールする(Rubyのコンパイルに必要)$ sudo zypper install -y --type pattern devel_basis # (出力は省略)
-
libopenssl-devel
のインストール$ sudo zypper install -y libopenssl-devel # (出力は省略)
-
Rubyのインストール
$ rbenv install -v 3.1.2 # (中略) Installed ruby-3.1.2 to /home/ec2-user/.rbenv/versions/3.1.2 # (以後省略) # rubyコマンドで起動するバージョンを設定 $ rbenv global 3.1.2 $ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
[EC2] Debian 10
OS情報
AMI名:debian-10-amd64-20210329-591
AMI ID:ami-0ac97798ccf296e02
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
rbenvのインストール
-
aptのリポジトリ情報の更新
$ sudo apt update -y # (出力は省略)
-
gitのインストール
$ sudo apt install -y git # (出力は省略) $ git --version git version 2.20.1
-
rbenv-installerの実行・rbenv-doctorで状態確認
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash # (出力は省略) # PATHの設定 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile $ echo 'eval "$(rbenv init - bash)"' >> ~/.profile $ source ~/.profile # rbenv-doctorで状態確認 $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-doctor | bash Checking for `rbenv' in PATH: /home/admin/.rbenv/bin/rbenv Checking for rbenv shims in PATH: OK Checking `rbenv install' support: /home/admin/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220426) Counting installed Ruby versions: none There aren't any Ruby versions installed under `/home/admin/.rbenv/versions'. You can install Ruby versions like so: rbenv install 3.1.2 Checking RubyGems settings: OK Auditing installed plugins: OK $ rbenv --version rbenv 1.2.0-14-gc6cc0a1
Rubyのインストール
-
build-essential
のインストール(Rubyのコンパイルに必要)$ sudo apt install -y build-essential # (出力は省略)
-
libssl-dev
,zlib1g-dev
のインストール(Rubyのコンパイルに必要)$ sudo apt install -y libssl-dev zlib1g-dev # (出力は省略)
-
Rubyのインストール
$ rbenv install -v 3.1.2 # (中略) Installed ruby-3.1.2 to /home/admin/.rbenv/versions/3.1.2 # (以後省略) # rubyコマンドで起動するバージョンを設定 $ rbenv global 3.1.2 $ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
rbenv install
で、最近リリースされた新しいRubyのバージョンが候補に出て来ない場合
rbenv install
でTab補完連打しても候補に出てこない、rbenv install --list
でしっかり確認してもしっかりリストから抜けている、そんな場合は、ruby-buildを最新にする必要があります。
方法は簡単で、Linux/UNIXならgitで、macOSならHomebrewですぐです。ruby-build READMEの、Installation > Upgradingから引用します:
-
Linux/UNIX
# As an rbenv plugin $ git -C "$(rbenv root)"/plugins/ruby-build pull
-
MacOS
# Via Homebrew $ brew update && brew upgrade ruby-build
完了したら、rbenv install --list
してみてください。
rbenvのアップグレード方法
gitで新しいバージョンをpullするだけです。rbenv READMEの、Installation > Basic GitHub Checkout > Upgrading with Gitから引用します(プロンプト$
は筆者が勝手につけています):
$ cd ~/.rbenv $ git pull
アップグレードの前後で、rbenv --version
をすると変化がわかるでしょう。
(おまけ)Rubyのバージョン管理をするとどう嬉しいのか・rbenvでの方法
-
コマンド
rbenv global <バージョン>
で、「(そのユーザが)単純にruby
コマンドを打った場合のバージョン」を指定できます-
つまり、
rbenv install <持ってないバージョン>
で新しいRubyのバージョンをインストールしてみてrbenv global
コマンドでパッと試す、あるいは気に入らなければrbenv global
コマンドでパッと戻すということがとても気軽にできますこんな感じに...$ ruby --version ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux] # 3.1.2インストールしてあるし、使ってみよう $ rbenv global 3.1.2 $ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
-
-
コマンド
rbenv local <バージョン>
で、「そのプロジェクトで使わせたいRubyのバージョン」を指定できますもう少し詳しい説明
- Rubyの場合、「そのプロジェクト=そのプロジェクトのトップディレクトリ配下」と読みかえてよいです
- プロジェクトのトップディレクトリで
rbenv local
コマンドを叩くと、「使わせたいRubyのバージョン」が書かれた.ruby-version
というファイルができます -
.ruby-version
ファイルが置いてあるディレクトリ配下ではどこでも、ruby
コマンドを叩くと、.ruby-version
に指定されたバージョンのRubyで動きます(rbenvでRubyをインストールして使っているユーザの場合)-
システムにまだインストールしていないバージョンが指定されている場合は、以下のように怒られます(もっているバージョンは
rbenv versions
コマンドで確認できます。):[~/project/ruby/foo]$ pwd /home/ubuntu/project/ruby/foo # 現在インストール済みのバージョンを一覧 [~/project/ruby/foo]$ rbenv versions 2.7.6 * 3.1.2 (set by /home/ubuntu/.rbenv/version) # 持っていないバージョン(例として3.1.0)が指定されている [~/project/ruby/foo]$ cat .ruby-version 3.1.0 [~/project/ruby/foo]$ ruby --version rbenv: version `3.1.0' is not installed (set by /home/ubuntu/project/ruby/foo/.ruby-version)
-
-
.ruby-version
ファイルは、gitのリポジトリにチェックインするとよいでしょう
-
これのおかげで、
-
「え、今のプロジェクトRuby3.1.2で開発してるんだけど、今新しいRubyをインストールすると実行バージョン変わっちゃうよな...」というようなことを気にせずに、システムに別のRubyのバージョンを気軽にインストールできます!
プロジェクト配下のRubyバージョンを指定する様子
# globalではRuby 3.1.2で設定 [~]$ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux] # foo/ディレクトリ(プロジェクトのトップディレクトリ)で、Ruby 2.7.6を設定 [~]$ mkdir foo/ [~]$ cd foo/ [~/foo]$ rbenv local 2.7.6 [~/foo]$ ruby --version ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux] # foo/ディレクトリ配下ならば、Ruby 2.7.6が実行される [~/foo]$ mkdir bar/ [~/foo]$ tree -Fa ./ ├── .ruby-version └── bar/ [~/foo]$ cd bar/ [~/foo/bar]$ ruby --version ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux]
-
また、プロジェクト自体のRubyバージョンアップ対応のことはじめとしても、
rbenv local <新しいバージョン>
=.ruby-version
ファイルの更新というシンプルなところから始めることができます。
(そのあとに、プログラムを実行して、出てくるエラーや警告に対処していく)
-
-
ちなみに、プロジェクトローカルのバージョン指定をやめたい時は、
.ruby-version
ファイルを削除するか、rbenv local --unset
コマンドを使えばよいです
参考
-
rbenv:rbenvの詳細はREADMEに詳しく書いてあるので、読んでみてください。
Discussion