概要
Linuxの場合、rbenvはGithubのREADME含めてホームディレクトリにインストールすることを前提に手順が記載されていることが多いです。
個人的にホームディレクトリ以外にインストールして利用しようと思ったのですが、その際に少し工夫が必要だったため、その方法を記載しています。
環境
- Amazon Linux 2
- kernel 4.14.72-73.55.amzn2.x86_64
- bash 4.2.46
- git 2.14.5
- rbenv 1.1.2
rbenvインストール
今回は例として/opt
配下にインストールする方向で進めていきます。
# git clone https://github.com/rbenv/rbenv.git /opt/rbenv
ログイン時にPATHの読み込みとrbenv
のセットアップを行うように設定を行います。
ログインユーザ全体に反映させたい場合は/etc/profile
に記載します。
ただし、直接同ファイルを修正するよりも、/etc/profile.d
配下に*.sh
ファイルを作成するほうが好ましいため、今回は/etc/profile.d/rbenv.sh
を新規作成して記載する方針とします。
その際に、環境変数RBENV_ROOT
に今回インストールしたrbenvのパスを定義してあげます。
# cat << EOF > /etc/profile.d/rbenv.sh
export RBENV_ROOT=/opt/rbenv
export PATH="\$RBENV_ROOT/bin:\$PATH"
eval "\$(rbenv init -)"
EOF
シェルを再起動して上記設定を読み込ませます。
rbenvのバージョンが表示されれば完了です。
# exec $SHELL -l
# rbenv -v
rbenv 1.1.2-2-g4e92322
次にrubyインストールのためにruby-build
をrbenv
のプラグインとしてインストールします。
# mkdir -p "$(rbenv root)"/plugins
# git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
ここまでくれば、あとはいつも通りにrubyをインストールすればOKです。
※rubyインストール前に必要なコンパイラなどもインストールしておきます。
# yum -y install bzip2 gcc openssl-devel readline-devel zlib-devel
# rbenv install -l
Available versions:
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
(中略)
# rbenv install 2.6.3
rbenv local <ruby version>
を実行すれば各々のディレクトリでRubyのバージョンを切り替えることができます。
$ pwd
/home/<user>
$ rbenv local 2.6.3
$ rbenv version
2.6.3 (set by /home/<user>/.ruby-version)
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
$
補足
rbenv
コマンドは環境変数RBENV_ROOT
を明示的に指定していないと現在ログインしているユーザのホームディレクトリ配下をrbenv
のrootディレクトリと定義するようです。
https://github.com/rbenv/rbenv/blob/master/libexec/rbenv
if [ -z "${RBENV_ROOT}" ]; then
RBENV_ROOT="${HOME}/.rbenv"
else
RBENV_ROOT="${RBENV_ROOT%/}"
fi
export RBENV_ROOT