Ubuntu 22.04 (WSL2) で rbenv で Ruby v3.2.1 をインストールしようとすると require': cannot load such file -- optparse (LoadError) が出る場合

結論

以下のようにしたら自分の環境ではインストールに成功しました。

1. グローバルに利用する Ruby を v2.7.3 に設定する

v2.7.3 を持っていない場合は $ rbenv install 2.7.3 で入れ、グローバルなバージョンとして v2.7.3 を指定します。

$ rbenv global 2.7.3

2. v3.2.1 をインストールする

v2.7.3 がグローバルな状態で v3.2.1 をインストールすると成功しました。

$ rbenv install 3.2.1
To follow progress, use 'tail -f /tmp/ruby-build.20230209145257.25800.log' or pass --verbose
Downloading ruby-3.2.1.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.gz
Installing ruby-3.2.1...
Installed ruby-3.2.1 to /home/HOGE/.rbenv/versions/3.2.1

補足

  • $ RBENV_VERSION=2.7.3 rbenv install 3.2.1 のような形では同じエラーが出ました
    • 「グローバルに」v2.7.3 を設定することでエラーが出なくなりました
  • v2.7.3 という特定のバージョン以外でも大丈夫と思われます
    • OpenSSL の問題が解決すればいいのかなと
  • --with-openssl-dir などの ruby-buildconfigure オプションを指定するやり方*1でもだめでした
  • 以下の環境ではそもそもこのエラーは出ませんでした
    • arm64 / Ubuntu 22.04
    • darwin / macOS

参考

github.com

blare.fwhy.app

余談

これ解決するのに半日つぶした…

*1:Mac では定番

Powered by はてなブログ