Ubuntu 24.04 LTS (WSL2) にて Ruby 3.3.3 を rbenv でインストールしようとしたら optparse のせいでビルドに失敗したときの対処方法
結論
以下の記事と同じですので、こちらを見るとすぐに解決します。
環境
- Ubuntu 24.04 LTS
- WSL2
$ rbenv install 3.3.3 実行時のエラーログ
compiling ripper_init.c
installing default socket libraries
checking ../.././parse.y and ../.././ext/ripper/eventids2.c
compiling date_parse.c
compiling date_strftime.c
compiling date_strptime.c
installing default date_core libraries
linking shared-object openssl.so
linking shared-object socket.so
make[2]: ディレクトリ '/tmp/ruby-build.20240612175100.62736.wTgB7T/ruby-3.3.3/ext/openssl' から出ます
make[2]: ディレクトリ '/tmp/ruby-build.20240612175100.62736.wTgB7T/ruby-3.3.3/ext/socket' から出ます
linking shared-object bigdecimal.so
make[2]: ディレクトリ '/tmp/ruby-build.20240612175100.62736.wTgB7T/ruby-3.3.3/ext/bigdecimal' から出ます
linking shared-object date_core.so
make[2]: ディレクトリ '/tmp/ruby-build.20240612175100.62736.wTgB7T/ruby-3.3.3/ext/date' から出ます
linking shared-object ripper.so
make[2]: ディレクトリ '/tmp/ruby-build.20240612175100.62736.wTgB7T/ruby-3.3.3/ext/ripper' から出ます
make[2]: ディレクトリ '/tmp/ruby-build.20240612175100.62736.wTgB7T/ruby-3.3.3' に入ります
tool/file2lastrev.rb:6:in `require': cannot load such file -- optparse (LoadError)
from tool/file2lastrev.rb:6:in `<main>'
./tool/file2lastrev.rb:6:in `require': cannot load such file -- optparse (LoadError)
from ./tool/file2lastrev.rb:6:in `<main>'
make[2]: *** [uncommon.mk:1322: .revision.time] エラー 1
make[2]: ディレクトリ '/tmp/ruby-build.20240612175100.62736.wTgB7T/ruby-3.3.3' から出ます
make[1]: *** [exts.mk:99: ruby] エラー 2
make[1]: ディレクトリ '/tmp/ruby-build.20240612175100.62736.wTgB7T/ruby-3.3.3' から出ます
make: *** [uncommon.mk:397: build-ext] エラー 2
external command failed with status 2
RUBY_CONFIGURE_OPTS 環境変数にて --with-baseruby を指定したらビルドできた
環境変数 RUBY_CONFIGURE_OPTS="--with-baseruby=$HOME/.rbenv/versions/3.2.4/bin/ruby" を付与して実行したところ、インストールが正常に終了しました。3.2.4 というのは適当に入れたバージョン番号です*1。
$ RUBY_CONFIGURE_OPTS="--with-baseruby=$HOME/.rbenv/versions/3.2.4/bin/ruby" rbenv install 3.3.3
==> Downloading ruby-3.3.3.tar.gz...
-> curl -q -fL -o ruby-3.3.3.tar.gz https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.3.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21.0M 100 21.0M 0 0 43.7M 0 --:--:-- --:--:-- --:--:-- 43.8M
==> Installing ruby-3.3.3...
-> ./configure "--prefix=$HOME/.rbenv/versions/3.3.3" --enable-shared --with-ext=openssl,psych,+ "--with-baseruby=$HOME/.rbenv/versions/3.2.4/bin/ruby"
-> make -j 20
-> make install
==> Installed ruby-3.3.3 to /home/USERNAME/.rbenv/versions/3.3.3
参考
*1:もちろん、すでに当該バージョンがインストールされている必要があるのと、現状では、3.3 系 のバージョン番号を指定するとビルドに失敗します