6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

さくらレンタルサーバーで ruby 3.2.0 をビルド

Posted at

はじめに

複数のトラップがあり,苦労したので記録する.以下は 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 権限が必要なので,ホーム以下の適当なディレクトリを指定する.

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?