LoginSignup
2
2

More than 5 years have passed since last update.

rbenvをホームディレクトリ以外にインストール

Posted at

概要

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-buildrbenvのプラグインとしてインストールします。


# 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

rbenv(抜粋)
if [ -z "${RBENV_ROOT}" ]; then
  RBENV_ROOT="${HOME}/.rbenv"
else
  RBENV_ROOT="${RBENV_ROOT%/}"
fi
export RBENV_ROOT

参考

2
2
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
2
2