はじめに
複数のトラップがあり,苦労したので記録する.以下は 2022/12/29 現在の話.
手順
rbenv および ruby-build のセットアップ
今調べたら Homebrew 利用の方法ばかりヒットするので,念のため書いておく.git pull
のエイリアスとしてrbenv_update
を登録しておく.新しい Ruby のバージョンがリリースされたら,rbenv_update
してからrbenv install
する.
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ echo 'alias rbenv_update="cd $HOME/.rbenv; git pull; cd -; cd $HOME/.rbenv/plugins/ruby-build; git checkout .; git pull; cd -"' >> ~/.bashrc
$ . ~/.bashrc
libyaml のインストール
Ruby 3.2.0 から libyaml の別途インストールが必要になった が,2022/12/29 現在,さくらレンタルサーバーでは libyaml はインストールされていないので,ホーム以下に自分でビルドする.以下では $HOME/local にインストールしているが,お好みで.
$ wget http://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz
$ tar xzf yaml-0.2.5.tar.gz
$ cd yaml-0.2.5
$ ./configure --prefix=$HOME/local
$ gmake
$ gmake install
ruby 3.2.0 のインストール
各種環境変数を設定してインストール.
$ CC=gcc RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local --with-libyaml-dir=$HOME/local" TMPDIR="$HOME/tmp" rbenv install 3.2.0
CC=gcc
デフォルトの clang ではエラーが出るので,gcc に変える.
試していないが,新しいバージョンの clang をローカルにインストールして使えばいけるかも? 2022/12/29 現在インストールされているバージョンは 11.0.1.うーん……
RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local --with-libyaml-dir=$HOME/local"
openssl, psychの各gemのビルドに指定が必要.--with-libyaml-dir の指定ディレクトリは configure の --prefix で指定したものと同じものを.
環境変数名,オプション名,指定ディレクトリがそれぞれ何が正しいのかを探すのに苦労した.openssl のビルドとかもしたが,システムのものでも大丈夫だった.
TMPDIR="$HOME/tmp"
一時ディレクトリもデフォルトでは root 権限が必要なので,ホーム以下の適当なディレクトリを指定する.