FreeBSDでRubyをビルドする

やること

FreeBSDRubyを自分でビルドしてインストールする。

Jail作成

インストール先のJailを作成する。

cd
mkdir /var/jail/rubybuild
bsdinstall jail /var/jail/rubybuild
cat << 'EOF' > jail-rubybuild.conf
rubybuild {
  path = "/var/jail/rubybuild";
  host.hostname = "rubybuild";
  # とりあえずIPアドレスはホストと同じものにしておく。
  ip4.addr = "172.26.11.142";
  persist;
}
EOF
jail -c -f jail-rubybuild.conf

パッケージのインストール

#/dev/nullなどをつかうコマンドのために/devを用意する。
mount -t devfs -o ruleset=2 devfs /var/jail/rubybuild/dev
pkg -j rubybuild update
pkg -j rubybuild install libedit libyaml bison libffi

Rubyソースコードダウンロード&コンパイル

configureで--with-*-dirで/usr/localを指定するのがポイント。

jexec rubybuild /bin/tcsh
cd ~/
fetch --no-verify-peer https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.4.tar.gz
sha256 ruby-2.6.4.tar.gz
tar xf ruby-2.6.4.tar.gz && cd ruby-2.6.4
./configure --prefix=/opt/ruby-2.6.4 --enable-libedit --with-libedit-dir=/usr/local --with-libyaml-dir=/usr/local --with-libffi-dir=/usr/local --without-gdbm --disable-install-doc
make
make install

動作確認

# /opt/ruby-2.6.4/bin/ruby --version
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-freebsd12.0]