DebianにRuby 3をインストール

Ruby 3 がリリースされてだいぶ経ちますが、Debian unstableで用意されているパッケージのバージョンはこれを書いている時点で2.7です。

Debianで Ruby 3を試すにはrbenvを使うか、似た別の方法を使う必要があります。 さらに、Debianのruby-buildパッケージには3以降が含まれないようなので、rbenvとruby-buildを自前でインストールする必要があります。

ここではシステム・ワイドでRuby 3をインストールしたときの記録です。

ruby-buildで使うツールをインストールするために

sudo apt-get install build-essential curl libreadline6-dev zlib1g-dev autoconf automake bison git-core libtool libsqlite3-dev libssl-dev libxml2-dev libxslt-dev 

をしておけば安心です。

rbenvのインストール

基本的にSystem Wide Install With rbenv に書いてある通りです。

キモはrbenvのフォルダをstaffグループにしておいて、ユーザーもstaffグループに存在すれば、ルート権限なしでも/usr/local/以下にRubyをインストールできるようになる、という点ですね。

ぼくは/usr/local/share以下にrbenvを入れています。この辺はお好みで。

cd /usr/local/share
sudo sudo git clone git://github.com/sstephenson/rbenv.git rbenv
sudo chgrp -R staff rbenv
sudo chmod -R g+rwxXs rbenv
sudo adduser XXXX staff

ruby-buildのインストール

cd /usr/loca/share/rbenv
sudo mkdir plugins
cd plugins
git clone git://github.com/sstephenson/ruby-build.git
sudo git clone git://github.com/sstephenson/ruby-build.git
sudo chgrp -R staff ruby-build
sudo chmod -R g+rwxXs ruby-build

環境設定

使っているshellに合わせて以下の設定を入れておきます。

ぼくはzshなので.zshenv に入れました。

export RBENV_ROOT=/usr/local/rbenv 
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

このあと、ログインしなおします。

Ruby 3.0.2のインストール

rbenv install --list-all
rbenv install 3.0.2

ruby バージョンの切り替え

基本は

ruby local ***
ruby global ***

で切り替えます。

% rbenv versions                                            [10032]
  system
* 3.0.2 (set by /home/XXXXX/.ruby-version)
% rbenv local system                                        [10033]
% rbenv versions                                            [10034]
* system (set by /home/XXXXX/.ruby-version)
  3.0.2
% ruby -v                                                   [10035]
ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux-gnu]
% rbenv local 3.0.2                                         [10036]
% ruby -v                                                   [10037]
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]

Adsense広告