AppleシリコンMacにrbenvを使ってRubyをインストールした

開発環境

コーディング的には、RailsやらCompass(Sass)を使わないといかんので、Rubyをインストールします。

最新の安定版はruby3.4.1。

Macに関してはHomebrewでrbenvをインストールしてから最新のRubyを。
ご多分に漏れずアーキテクチャによる注意点があるようなので、調べてから行う。

UTM上のRocky Linuxに関してはちょっと特殊事情で、特定の案件のため特定のバージョンのRubyとRORが必要なので、こちらもrbenvで指定してインストールしてやる必要があるんだけど、こっちはちゃんとやったことを残しておこうと思う。

M1 Mac mini にRuby3.4.1をインストール

で、Macに関しては、記事を紹介するだけなのだwww

この記事と違う点は、まだピチピチなMacなので .zshrc がなかったため、

touch ~/.zshrc

しておいたのと、
最新のruby3.4.1をインストール成功したあとにデフォルトのバージョンを変更したのが反映されなかったので、ChatGPTの指示通りに以下の一文を .zshrcに加えたぐらい。パスを通して初期化してやる、ということか。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

UTM上のRocky Linux9にバージョンを指定してインストール

ここからは

を参考にして進める

Rocky Linux9にrbenvをインストール

まずはgitから最新のrbenvを引っ張ってくる。

$ git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv

# パスを通す
# 全ユーザー共通で使えるようにするために rbenv.shに書き込む
$ echo 'export RBENV_ROOT=/usr/local/rbenv
export PATH="$PATH:$RBENV_ROOT/bin"
eval "$(rbenv init -)"' > /etc/profile.d/rbenv.sh
# 再読み込み
$ source /etc/profile
# バージョン確認
$ rbenv --version
rbenv 1.3.2

rbenvプラグインのインストール

$ mkdir -p ${RBENV_ROOT}/plugins && pushd $_

# ruby-buildは必要
$ git clone https://github.com/rbenv/ruby-build.git

# rbenv install後に指定のgemを自動でインストールしてくれるらしい
$ git clone https://github.com/rbenv/rbenv-default-gems.git

# rbenv updateコマンドでrbenv及びプラグインを全てgit pullしてくれるらしい
$ git clone https://github.com/rkh/rbenv-update.git

$ popd
$ echo 'bundler' > ${RBENV_ROOT}/default-gems

libyaml-develインストール

参考記事にあった通り、libyaml-devel というやつが必要なようだ。
実は最初に最新のruby3.4.1をインストールしようとしていたのが途中で止まったので、これを先にやっておく。

$ dnf -y install --enablerepo=crb libyaml-devel

Installed:
  libyaml-devel-0.2.5-7.el9.aarch64

Rubyのインストールが進まない。

デフォルトでインストールできるバージョンの確認

$ rbenv install --list
3.1.6
3.2.6
3.3.6
3.4.1
jruby-9.4.9.0
mruby-3.3.0
picoruby-3.0.0
truffleruby-24.1.1
truffleruby+graalvm-24.1.1

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

最新バージョンはあるが、欲しいバージョンがないので上記メッセージにしたがって確認してみる。

$ rbenv install --list-all | grep 3.2.2
3.2.2

うん、大丈夫。

ということで、

$ rbenv install 3.4.1

でもどうしても下のところまで進んで止まってしまう.

[root@vagrant ~]# rbenv install 3.4.1
==> Downloading ruby-3.4.1.tar.gz...
-> curl -q -fL -o ruby-3.4.1.tar.gz https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.1.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 22.0M  100 22.0M    0     0  6076k      0  0:00:03  0:00:03 --:--:-- 6077k
==> Installing ruby-3.4.1...
-> ./configure --prefix=/usr/local/rbenv/versions/3.4.1 --enable-shared --with-ext=openssl,psych,+

ChatGPTに泣きつく

とりあえずChatGPTさんに聞いてみて提案のあった解決方法を取ってみる。

  1. 依存パッケージの不足
# なんかやたらめったらインストールされたwww
$ sudo dnf groupinstall "Development Tools"

# 既に入ってるやつもあるけど、とりあえず言われた通りにインストール
$ sudo dnf install gcc gcc-c++ make zlib zlib-devel openssl openssl-devel readline readline-devel libffi libffi-devel sqlite sqlite-devel bzip2 bzip2-devel

まさかの結末

何をやってもうまくいかないもんだから、いろいろやってインストールコマンド打ち込んでしばらく放置しておいたら・・・

==> Installing ruby-3.2.2...
-> ./configure --prefix=/usr/local/rbenv/versions/3.2.2 --enable-shared --with-ext=openssl,psych,+
-> make -j 4  # ←初見の行が追加された!!!!

た、単にめっちゃ時間が掛かってる・・・だけ・・・?

UTMってこういうとこあるよな・・・・

ということでゆっくりと風呂に入ってくる。

というわけで、1時間ぐらい放置してみたところ・・・

$ rbenv install 3.2.2
==> Downloading ruby-3.2.2.tar.gz...
-> curl -q -fL -o ruby-3.2.2.tar.gz https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 19.5M  100 19.5M    0     0  6261k      0  0:00:03  0:00:03 --:--:-- 6263k
==> Installing ruby-3.2.2...
-> ./configure --prefix=/usr/local/rbenv/versions/3.2.2 --enable-shared --with-ext=openssl,psych,+
-> make -j 4

Message from syslogd@vagrant at Jan 14 02:31:41 ...
 kernel:watchdog: BUG: soft lockup - CPU#3 stuck for 95s! [ruby:60746]

Message from syslogd@vagrant at Jan 14 02:48:24 ...
 kernel:watchdog: BUG: soft lockup - CPU#2 stuck for 891s! [ruby:60746]
-> make install

Message from syslogd@vagrant at Jan 14 03:39:29 ...
 kernel:watchdog: BUG: soft lockup - CPU#3 stuck for 852s! [ruby:60976]
==> Installed ruby-3.2.2 to /usr/local/rbenv/versions/3.2.2
Fetching bundler-2.6.2.gem
Successfully installed bundler-2.6.2
Parsing documentation for bundler-2.6.2
Installing ri documentation for bundler-2.6.2
Done installing documentation for bundler after 2 seconds
1 gem installed

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

なんと、できてしまったwww
それにしても時間かかり過ぎorz

これUTMのせいなんかな?

ま、同様に最新版もインストールするとしよう。寝てる間にw

2025/01/15開発環境Appleシリコン,Linux,M1,rbenv,RockyLinux,ruby

Posted by YANAGIDAryosuke