Amazon EC2(Amazon Linux 2023)にRubyをインストールする手順完成までの道のりを記録します。
これを読むことで、以下記事の手順がなぜ必要なのかを学べます。
EC2インスタンスにログインしたところから始めます。
以下のコマンドを実行し、インストールされているパッケージを最新バージョンにします。
sudo yum update
rbenvのインストール
以下のコマンドを実行し、rbenvをインストールします。
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
「gitコマンドが見つからない」とエラーがでました。
-bash: git: command not found
エラー:「-bash: git: command not found」を対処する
以下のコマンドを実行し、gitをインストールします。これでgitコマンドが使えるようになります。
sudo yum install git
再び、以下のコマンドを実行し、rbenvをインストールします。インストールできました。
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Rubyのインストール
以下のコマンドを実行し、Rubyをインストールします。
rbenv install 3.2.3
「rbenvコマンドが見つからない」とエラーがでました。
-bash: rbenv: command not found
(1)エラー:「-bash: rbenv: command not found」を対処する
参考:rbenv
以下のコマンドを実行し、「.bash_profile」があることを確認します。
※カレントディレクトリは「/home/ec2-user」です。
ls -a
以下のコマンドを実行し、「.bash_profile」を編集します。
vim .bash_profile
画面が以下のように切り替わります。
「i」キーを押して、INSERTモードにします。INSERTモードにすることで編集ができます。
以下のように編集します。
eval "$(~/.rbenv/bin/rbenv init - bash)"
「esc」キーを押すと、INSERTモードから抜けることができます。
「:wq」を入力し、「Enter」キーを押すと編集を保存して閉じることができます。
変更内容を反映させるために、再起動します。(Tera Termを切断して、再び接続します。)
再び、以下のコマンドを実行し、Rubyをインストールをします。
rbenv install 3.2.3
再び、「rbenvコマンドが見つからない」とエラーがでました。
-bash: rbenv: command not found
(2)エラー:「-bash: rbenv: command not found」を対処する
参考:rbenv
以下のコマンドを実行し、ruby-buildをインストールします。
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
再び、以下のコマンドを実行し、Rubyをインストールをします。
rbenv install 3.2.3
「ビルド失敗」とエラーがでました。
BUILD FAILED
ただ、「rbenvコマンドが見つからない」エラーは解決できたようです。
-bash: rbenv: command not found
(3)エラー:「BUILD FAILED」を対処する
以下のコマンドを実行し、ログを見ます。
cat /tmp/ruby-build.20240407055634.26691.log
ログの最後の方に「failed-compilation」と記載があったので、gccをインストールします。
以下のコマンドを実行し、gccをインストールします。
sudo yum install gcc
再び、以下のコマンドを実行し、Rubyをインストールをします。
rbenv install 3.2.3
再び、「ビルド失敗」とエラーがでました。
BUILD FAILED
以下のコマンドを実行し、ログを見ます。
cat /tmp/ruby-build.20240407063040.27939.log
ログに「openssl」と記載があったので、openssl-develcをインストールします。
以下のコマンドを実行し、openssl-develをインストールします。
sudo yum install openssl-devel
再び、以下のコマンドを実行し、Rubyをインストールをします。
rbenv install 3.2.3
「デバイス容量が不足している」とエラーがでました。
write error: No space left on device
(4)エラー:「write error: No space left on device」を対処する
以下のコマンドを実行し、/home/ec2-user下のディレクトリを削除します。
※カレントディレクトリは「/home/ec2-user」です。
rm -rf *
/tmpに移動します。
以下のコマンドを実行し、/tmp下のディレクトリを削除します。
※カレントディレクトリは「/tmp」です。
rm -rf *
以下のコマンドを実行し、TMPDIRとしてディレクトリを指定し、Rubyをインストールします。
※カレントディレクトリは「/home/ec2-user」です。
TMPDIR="${PWD}/tmp" rbenv install 3.2.3
画面が変わらないまま10分くらい待つ。
「以下extensionsがコンパイルされない」とエラーがでました。
Following extensions are not compiled
(5)エラー:「Following extensions are not compiled」を対処する
以下のコマンドを実行し、不足していたパッケージをインストールします。
sudo yum install libffi-devel libyaml-devel readline-devel zlib-devel
再び、以下のコマンドを実行し、Rubyをインストールをします。
TMPDIR="${PWD}/tmp" rbenv install 3.2.3
画面が変わらないまま10分くらい待つと、Rubyのインストール完了しました。
Rubyバージョンを確認する
以下のコマンドを実行し、Rubyバージョンを確認します。
ruby -v
「rubyコマンドが見つからない」とエラーがでました。
rbenv: ruby: command not found
エラー:「rbenv: ruby: command not found」を対処する
参考:rbenv global
以下のコマンドを実行し、「version」ファイルを作成し、編集します。
※カレントディレクトリは「/home/ec2-user/.rbenv」です。
vim version
使用したい(インストールした)Rubyバージョンを入力します。
今回は「3.2.3」と入力します。保存して閉じます。
/home/ec2-user/.rbenv下にversionファイルが作成されたことを確認しました。
再び、以下のコマンドを実行し、Rubyバージョンを確認します。
ruby -v
正常にRubyバージョンが表示されました。
これでAmazon EC2にRubyをインストールは完了です。