はのちゃ爆発

はのちゃが技術ネタとか日常のこととかを書いてます。

Ubuntu 18.04 LTS 上で rbenv を使って Ruby 2.3.6 を入れようとすると libssl-dev 周りでコケる

という現象が発生したので、その原因と解決策のメモ。 調べた感じ同じ現象でハマっている人はまだ居なさそうだった。

発生した状況

  • Ubuntu 18.04 LTS
  • rbenv 1.1.1-30-gc8ba27f

の環境下で Ruby 2.3.6 のインストールを試行すると以下のエラーが発生する。

BUILD FAILED (Ubuntu 18.04 using ruby-build 20180424)

Inspect or clean up the working tree at /tmp/ruby-build.20180512131631.10931
Results logged to /tmp/ruby-build.20180512131631.10931.log

Last 10 log lines:
installing rdoc:              /home/hanocha/.rbenv/versions/2.3.6/share/ri/2.3.0/system
installing capi-docs:         /home/hanocha/.rbenv/versions/2.3.6/share/doc/ruby
The Ruby openssl extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libssl-dev` to fetch missing dependencies.

libssl-dev を入れろと言われるので指示通りインストールするものの解決せず。

解決方法

libssl1.0-dev を入れる

# apt install libssl1.0-dev

原因

Ubuntu 18.04 で # apt install libssl-dev を実行すると libssl-dev1.1 系がインストールされる。 しかし Ruby 2.3.6 は libssl-dev1.0 系が必要らしく、ビルドに失敗する。

Ubuntu 17.10 以前であれば apt install libssl-dev1.0 系が入るので問題なかった。 また、 (少なくとも)Ruby 2.5 以降は libssl-dev1.1 系でも問題ないことも確認した。

▼ 17.10 だと 1.0 系の libssl-dev が入る

Ubuntu – Details of package libssl-dev in artful

▼ 18.04 だと 1.1 系が入る

Ubuntu – Details of package libssl-dev in bionic