Ubuntu 24.04 LTS (WSL2) にて Ruby 3.3.2 を rbenv でインストールしようとしたら optparse のせいでビルドに失敗したときの対処方法

結論

以下の記事と同じですので、こちらを見るとすぐに解決します。

obel.hatenablog.jp

環境

  • Ubuntu 24.04 LTS
  • WSL2

$ rbenv install 3.3.2 実行時のエラー画面とエラーログ

gyazo.com

make[2]: ディレクトリ '/tmp/ruby-build.20240530193506.59038.FKjUAA/ruby-3.3.2/ext/date' から出ます
linking shared-object ripper.so
make[2]: ディレクトリ '/tmp/ruby-build.20240530193506.59038.FKjUAA/ruby-3.3.2/ext/ripper' から出ます
make[2]: ディレクトリ '/tmp/ruby-build.20240530193506.59038.FKjUAA/ruby-3.3.2' に入ります
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.20240530193506.59038.FKjUAA/ruby-3.3.2' から出ます
make[1]: *** [exts.mk:99: ruby] エラー 2
make[1]: ディレクトリ '/tmp/ruby-build.20240530193506.59038.FKjUAA/ruby-3.3.2' から出ます
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.2
==> Downloading ruby-3.3.2.tar.gz...
-> curl -q -fL -o ruby-3.3.2.tar.gz https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.2.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  67.4M      0 --:--:-- --:--:-- --:--:-- 67.3M
==> Installing ruby-3.3.2...
-> ./configure "--prefix=$HOME/.rbenv/versions/3.3.2" --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.2 to /home/USERNAME/.rbenv/versions/3.3.2

参考

github.com

*1:もちろん、すでに当該バージョンがインストールされている必要があるのと、現状 3.3 系 を指定するとビルドに失敗します

Powered by はてなブログ