LoginSignup
2
1

[メモ用]AmazonLinux2023でRubyをインストールする

Last updated at Posted at 2023-07-04

AWSを学習している段階でEC2のAMIとしてAmazonLinux2を選択する方が多いと思います。
実際にネット上の記事もAmazonLinux2に関する記事が多いです。
ただ、2023年からAmazonLinux2023が一般公開され、今後はこちらが主流になりそうなので、今回AmazonLinux2023でRubyの環境構築をしてみました。

※今回の記事は自分のメモ用です。
※インスタンスの選択やSSH接続等については触れません。

1. はじめに

AmazonLinux2023を選択してRubyをインストールしたい方は「t3.micro」は選択しない方が無難です。
無料枠なので使いたい気持ちもよくわかりますが、何度か試した結果Rubyのインストールが安定しません。
これは後で後述しますが、絶対にできないわけではないのでこちらの選択は自己責任でお願いします。
また、AmazonLinux2023でも「yum」は使えます。
fedoraベースなので本来は「dnf」を使用すべきですが、こちらはよしなに変換してくれるみたいです。
もちろん「dnf」も使用可能です。
なお、本記事では「yum」を使用します。

2. 最初にアップデート

EC2にSSHでログインしたらまずはアップデートを行います。

sudo yum update

3. 必要なプラグインをインストール

Rubyをインストールする前に必要なプラグインをインストールします。
もしかしたら不要なものもあるかもしれませんが、主要なプラグインなのでインストールしておきます。
必要に応じて削除してください。(例えばmysql関連は人によっては不要です)

sudo yum -y install git make gcc-c++ patch openssl-devel libyaml-devel libffi-devel libicu-devel libxml2 libxslt libxml2-devel libxslt-devel zlib-devel readline-devel ImageMagick ImageMagick-devel mysql mysql-server mysql-devel

4. Node.js & yarn をインストール

curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum -y install nodejs
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn

5. rbenvをインストール

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source .bash_profile

6. ruby-buildをインストール

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

7. Rubyをインストール(t3.small以上の方向け)

先に伝えたように、こちらはt3.small以上を選択した方向けです。
t3.microを選択した方は次に進んで下さい。

rbenv install -v 3.2.2
rbenv global 3.2.2

8. Rubyをインストール(t3.microの方向け)

t3.microだと何がダメなのか?
結論
/tmpディレクトリの容量不足でエラーが起こる
ということで解決策です。

TMPDIR="${PWD}/tmp" rbenv install -v 3.2.2
rbenv global 3.2.2

現在の作業ディレクトリにある "tmp" フォルダを一時ディレクトリとして指定することで容量不足を解決できます。

9. 最後に

今回は自分のメモ用なので詳細は書けませんでしたが、これの解決に本当に時間を要したので誰かの救いになったら嬉しいです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1