先日、システムワイドにインストールしようとした時には失敗したけど、ググっていたらヒントになりそうな記事を見つけた。
cf. Centos7にNginx + UnicornでRedmine3.3構築方法 – Qiita
つまり、/usr/local/rbenv のパーミッションの問題を解決してやればいいんではないか。
前提
/usr/local/rbenv 以下には、先日インストール(というか git clone)したファイルが残っている。
新しいユーザーとグループの作成
takatoh にはユーザーローカルに rbenv がインストールされてしまっていて、ここで作業するとややこしい事になりそうなので、別のユーザーを作ることにする。
[takatoh@aybesea ~]$ sudo useradd bill [sudo] takatoh のパスワード: [takatoh@aybesea ~]$ sudo passwd bill ユーザー bill のパスワードを変更。 新しいパスワード: よくないパスワード: このパスワードは 8 未満の文字列です。 新しいパスワードを再入力してください: passwd: すべての認証トークンが正しく更新できました。
新しいグループ staff を作って、いま作ったユーザー bill を所属させる。
[takatoh@aybesea ~]$ sudo groupadd staff [sudo] takatoh のパスワード: [takatoh@aybesea ~]$ sudo usermod -G staff bill
ついでに wheel グループにも所属させておこう。
[takatoh@aybesea ~]$ sudo usermod -G wheel bill
さて、ここからはユーザー bill での作業。
rbenvの設定とインストール
/etc/profile.d/rbenv.sh をつぎのとおりに作成。
export RBENV_ROOT="/usr/local/rbenv" export PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init --no-rehash -)"
/usr/local/rbenv のグループと権限を変更。
[bill@aybesea ~]$ sudo chgrp -R staff /usr/local/rbenv [bill@aybesea ~]$ sudo chmod -R 755 /usr/local/rbenv
/etc/profile.d/rbenv.sh を読み込んだあと、ruby-build をインストール。
[bill@aybesea ~]$ source /etc/profile.d/rbenv.sh [bill@aybesea ~]$ cd /usr/local/rbenv/plugins/ruby-build [bill@aybesea ruby-build]$ sudo ./install.sh
さあ、これでどうだ。rbenv がインストールされているか、確認。
[bill@aybesea ruby-build]$ rbenv -v rbenv 1.1.1-28-gb943955 [bill@aybesea ruby-build]$ which rbenv /usr/local/rbenv/bin/rbenv
Rubyのインストール
いよいよ Ruby のインストール。先日の 2.5.0 と間違わないように 2.4.3 をインストールしてみる。
[bill@aybesea ~]$ rbenv install 2.4.3 Downloading ruby-2.4.3.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.3.tar.bz2 Installing ruby-2.4.3... mkdir: ディレクトリ `/usr/local/rbenv/versions/2.4.3' を作成できません: 許可がありません BUILD FAILED (CentOS Linux 7 using ruby-build 20171226) Inspect or clean up the working tree at /tmp/ruby-build.20180102092705.32107 Results logged to /tmp/ruby-build.20180102092705.32107.log Last 10 log lines: /tmp/ruby-build.20180102092705.32107 /usr/local/rbenv/plugins/ruby-build /tmp/ruby-build.20180102092705.32107/ruby-2.4.3 /tmp/ruby-build.20180102092705.32107 /usr/local/rbenv/plugins/ruby-build
ああ、ダメだ。なんでだ?
もう一度、/usr/local/rbenv のパーミッションを確認してみる。
[bill@aybesea ~]$ ls -l /usr/local | grep rbenv drwxr-xr-x. 12 root staff 263 12月 31 05:58 rbenv
あ、ディレクトリのパーミッションが 755 になってる。多分このせいだ。さっき間違えたようだ。
[bill@aybesea ~]$ sudo chmod -R 775 /usr/local/rbenv [sudo] bill のパスワード:
これでもう一度インストールにチャレンジ。
[bill@aybesea ~]$ rbenv install 2.4.3 Downloading ruby-2.4.3.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.3.tar.bz2 Installing ruby-2.4.3... mkdir: ディレクトリ `/usr/local/rbenv/versions/2.4.3' を作成できません: 許可がありません BUILD FAILED (CentOS Linux 7 using ruby-build 20171226) Inspect or clean up the working tree at /tmp/ruby-build.20180102094304.32661 Results logged to /tmp/ruby-build.20180102094304.32661.log Last 10 log lines: /tmp/ruby-build.20180102094304.32661 ~ /tmp/ruby-build.20180102094304.32661/ruby-2.4.3 /tmp/ruby-build.20180102094304.32661 ~
ああ、これでもダメか。
bill のグループを確認してみる。
[bill@aybesea ~]$ groups bill wheel
あれ?staff グループに所属してない。
調べたところ usermod -G コマンドでは2次グループに所属させることはできるが、複数回実行すると2次グループが置き換えられるようだ。所属するグループを3つ以上にするには usermod -aG コマンドを使うようだ。
なので、次のようにする。
[bill@aybesea ~]$ sudo usermod -aG staff bill [sudo] bill のパスワード: [bill@aybesea ~]$ groups bill wheel
あれ、追加されてない?id コマンドで見てみよう。
[bill@aybesea ~]$ id bill uid=1002(bill) gid=1002(bill) groups=1002(bill),10(wheel),1003(staff)
こっちには追加されている。
それじゃ、もう一度インストールにチャレンジ。
[bill@aybesea ~]$ rbenv install 2.4.3 Downloading ruby-2.4.3.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.3.tar.bz2 Installing ruby-2.4.3... mkdir: ディレクトリ `/usr/local/rbenv/versions/2.4.3' を作成できません: 許可がありません BUILD FAILED (CentOS Linux 7 using ruby-build 20171226) Inspect or clean up the working tree at /tmp/ruby-build.20180102095649.535 Results logged to /tmp/ruby-build.20180102095649.535.log Last 10 log lines: /tmp/ruby-build.20180102095649.535 ~ /tmp/ruby-build.20180102095649.535/ruby-2.4.3 /tmp/ruby-build.20180102095649.535 ~
まだダメか。
いったん、ログアウトしてからログインし直してみよう。それからまたチャレンジ。
[bill@aybesea ~]$ rbenv install 2.4.3 Downloading ruby-2.4.3.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.3.tar.bz2 Installing ruby-2.4.3... Installed ruby-2.4.3 to /usr/local/rbenv/versions/2.4.3 [bill@aybesea ~]$ rbenv versions 2.4.3 [bill@aybesea ~]$ rbenv global 2.4.3 [bill@aybesea ~]$ ruby -v ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]
今度はうまくいった!
これで完了。
[追記]
ユーザー takatoh での設定も変更しておく。.bash_profile から rbenv 関係の記述を削除してログインし直したところ、次のようになった。
[takatoh@aybesea ~]$ rbenv -v rbenv 1.1.1-28-gb943955 [takatoh@aybesea ~]$ which rbenv /usr/local/rbenv/bin/rbenv [takatoh@aybesea ~]$ rbenv versions * 2.4.3 (set by /usr/local/rbenv/version) [takatoh@aybesea ~]$ rbenv version 2.4.3 (set by /usr/local/rbenv/version)
ユーザーローカルでインストールした 2.5.0 は現れず、さっきシステムワイドにインストールした 2.4.3 を使うようになっている。
~/.rbenv 以下はもう要らないので削除。
[takatoh@aybesea ~]$ rm -rf .rbenv
Ruby を使うだけならこれでいいけど、他のバージョンのインストールができないので、staff グループに所属させておく。
[takatoh@aybesea ~]$ sudo usermod -aG staff takatoh
もう一度ログインし直せば完了。