4
2

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.

rbenvをシステム全体で利用できるようにする

Last updated at Posted at 2020-04-19

rbenvをユーザー毎ではなく、システム全体で共有して利用できるようにします。

Out-of-Date!!!

この記事は2023年現在、一部古い内容となっています。
改版版をご覧ください。

前提

  • gitが使用可能
  • rbenv関連の書き込み権限を持つグループとしてrbnevグループを作成、必要なユーザーを所属させる

環境

  • CentOS7/8で確認しています

rbenvインストール

rbenvを操作できるグループを追加

$ sudo groupadd rbenv

追加したグループにユーザを追加

$ sudo gpasswd -a USERNAME rbenv

rbenv用のディレクトリを作成

$ sudo mkdir /usr/local/rbenv

ディレクトリの所有者(グループ)を変更

$ sudo chown .rbenv /usr/local/rbenv

ディレクトリにパーミッションを設定

$ sudo chmod 2775 /usr/local/rbenv

rbenvをインストール

Basic GitHub Checkoutを参考に。
以降、前述のrbenvグループにユーザーが属していることを前提にしています。
idコマンドで表示されるgroupsにrbenvが含まれない場合、再ログインする等してから実行します。

$ git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv

以下2行はお好みで。

$ sudo yum install -y gcc
$ cd /usr/local/rbenv && src/configure && make -C src

環境変数等設定

/etc/profile.d下にrbenv.sh等の名前のファイルに以下を記述して保存、rbenvコマンドを利用できるようにします。

/etc/profile.d/rbenv.sh
export RBENV_ROOT="/usr/local/rbenv"
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init --no-rehash -)"

sourceコマンドでこのファイルを読み込み、初期化します。

$ source /etc/profile.d/rbenv.sh

sudoで使用可能にする

env_keepsecure_pathに設定を追記します。

$ sudo visudo
# 既存の Defaults env_keep の下に追加
Defaults    env_keep += "RBENV_ROOT"

# 既存の Defaults secure_path の末尾に :/usr/local/rbenv/bin:/usr/local/rbenv/shims を追記
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rbenv/bin:/usr/local/rbenv/shims

確認

一度ログアウト、ログインしコマンドを利用できることを確認します。

$ rbenv --version
rbenv 1.1.2-28-gc2cfbd1

rbenv-doctor

更に念を押して確認するには、rbenv-doctorを利用します。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /usr/local/rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: not found
Unless you plan to add Ruby versions manually, you should install ruby-build.
Please refer to https://github.com/rbenv/ruby-build#installation

Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/usr/local/rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK

この時点ではruby-buildを導入していないため、当該箇所はnot foundとなっています。

ruby-buildインストール

本体

gitでcloneします。

$ git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build

Rubyビルド用パッケージ

Suggested build environmentを参考に、必要なパッケージをインストールします。

CentOS
$ sudo yum install -y gcc-6 bzip2 openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel

CentOS8

2020/05/09時点のSuggested build environment CentOS: に従うと以下のようなエラーが出ます。

$ sudo yum install -y gcc-6 bzip2 openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel
Last metadata expiration check: 0:23:25 ago on Fri 08 May 2020 03:28:19 PM UTC.
No match for argument: gcc-6
No match for argument: libyaml-devel
Package ncurses-devel-6.1-7.20180224.el8.x86_64 is already installed.
Error: Unable to find a match: gcc-6 libyaml-devel

新しいRubyをビルドする上では必要なさそうですので、gcc-6libyaml-develを除外してしまいます。

$ sudo yum install -y bzip2 openssl-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel

確認

例えば、rbenv install --listでインストール可能なRubyの一覧が出てきます。

$ rbenv install --list | grep ^2.7
2.7.0-dev
2.7.0-preview1
2.7.0-preview2
2.7.0-preview3
2.7.0-rc1
2.7.0-rc2
2.7.0
2.7.1

rbenv-doctor

rbenv-doctorも利用できます。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /usr/local/rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20200401-7-g637ddf3)
Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/usr/local/rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK

Rubyインストール

進捗が見える-vオプションはお好みで。

$ rbenv install 2.7.1 -v
...
~
Installed ruby-2.7.1 to /usr/local/rbenv/versions/2.7.1

インストールしたRubyをデフォルトにする

$ rbenv global 2.7.1
$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

rubygems、bundlerを最新にする

$ gem update --system -N
$ gem update bundler -N

RubyGemsを操作した後は、rehashする習慣を!

$ rbenv rehash
4
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?