ubuntu 20.04にRuby最新版(3.3.3)をインストールしようとしたときのメモ

インストールしてたらうまくいかない。
なんでmakeでしっぱいしているんだ?とエラーログをみてみたら

$ cat /tmp/ruby-build.20240614002810.14585.B5EatY/ruby-3.2.4/ext/psych/mkmf.log
LD_LIBRARY_PATH=.:../.. pkg-config --exists yaml-0.1
package configuration for yaml-0.1 is not found
find_header: checking for yaml.h... -------------------- no

ほーん。ヘッダーが見れなくなったのか。リリース履歴をみたら3.2以降libyamlが同梱されなくなったから個別に入れなきゃダメってことらしい。
ということでいつも通りぽいっと入れてみようにも入らない。。。

$sudo apt upgrade
$sudo apt update
$ sudo apt install libyaml
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libyaml
$ sudo apt install install libyaml-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package install

他にも依存があるのか。。。ってちょっと調べたらこんな記事があって
github.com

不足する可能性のあるものを全部入れておけばOKとのことでぶち込む。

sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev

無事完了した。

$ rbenv install 3.3.3
==> Downloading 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 200M 0 --:--:-- --:--:-- --:--:-- 200M
==> Installing ruby-3.3.3...

  • > ./configure "--prefix=$HOME/.rbenv/versions/3.3.3" --enable-shared --with-ext=openssl,psych,+
  • > make -j 8
  • > make install

==> Installed ruby-3.3.3 to /home/azureuser/.rbenv/versions/3.3.3

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

$ rbenv global 3.3.3
$ ruby -v
ruby 3.3.3 (2024-06-12 revision f1c7b6f435) [x86_64-linux]

めでたしめでたし。