質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

3回答

2744閲覧

rbenv/Rubyをシステムワイドにインストールするも /rootにRubyがインストールされる

rasum

総合スコア21

rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2021/04/13 06:39

編集2021/04/13 06:42

rbenv/Rubyをシステムワイドにインストールしようとしていますが、Rubyが/root/以下にインストールされ、一般ユーザーで起動できません。
対処がわかりませんでしょうか。

(状況)
rbenvを/usrlocal/rbenv/にインストールした。

/etc/profile.d/my.shに下記3行を記述した。

RBENV_ROOT=/usr/local/rbenv PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init --no-rehash -)"

Rubyをインストールした。
# rbenv install 3.0.1

Rubyが/root/.rbenv/shims/rubyにインストールされ、一般ユーザーから起動できない。

# which ruby /root/.rbenv/shims/ruby

rootユーザー・一般ユーザーのホームディレクトリに~/.rbenv/shimsが作られ、PATHには自動的に ~/.rbenv/shims が指定されている。

rootユーザーのPATH
/root/.rbenv/shims:/usr/local/rbenv/bin

一般ユーザーのPATH
/home/USER/bin:/home/USER/.rbenv/shims:/usr/local/rbenv/bin

/root/.rbenv/shims/にはいろいろとインストールされている

# ls /root/.rbenv/shims/ bundle erb irb rake rdoc ruby update rubygems bundler gem racc rbs ri typeprof

一般ユーザーの~/.rbenv/shims/には何も存在しない

$ ls -a .rbenv/shims/ . ..

(疑問)
PATHの~/.rbenv/shimsは"rbenv init"で設定されていると思う。
そうであれば、どうすればそれを避けられるか。

(実際に行ったインストール手順)

# git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv # chgrp -R staff /usr/local/rbenv # chmod -R g+rwxXs /usr/local/rbenv # git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build # chgrp -R staff /usr/local/rbenv/plugins/ruby-build # chmod -R g+rwxs /usr/local/rbenv/plugins/ruby-build # git clone https://github.com/rbenv/rbenv-default-gems.git /usr/local/rbenv/plugins/rbenv-default-gems # usermod -aG staff USER1 # usermod -aG staff USER2

/etc/profile.d/HOGE.shに環境変数を設定

RBENV_ROOT=/usr/local/rbenv PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init --no-rehash -)"

PCを再起動

/usr/local/rbenv/default-gemsファイルを次の内容で作成。

bundler pry rbenv-rehash

Rubyをインストール

# rbenv global 3.0.1 # rbenv rehash # rbenv global 3.0.1 # rbenv exec gem update --system

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

/etc/profile.d/HOGE.shにて、"rbenv init"の実行前にRBENV_ROOTとPATHをexportすることで解決しました。

投稿2021/05/18 13:22

rasum

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

mather様からのユーザー単位でのrbenvインストールのお勧めではありましたが、システムワイドにこだわったところ、/etc/profile.d/HOGE.shにて、下記のとおり"rbenv init"の実行前にRBENV_ROOTとPATHをexportすることで解決しました。

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

投稿2021/04/17 00:31

rasum

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

rbenv はシステムワイドに Ruby をインストールする目的のツールではないため、基本的にはユーザー単位、プロジェクト単位に管理するものです。

global はホームディレクトリの .rbenv に指定されたバージョンの Ruby をセットするだけです。

https://github.com/rbenv/rbenv#rbenv-global

実際、 rbenv versions で表示される system はrbenvで管理していない Ruby のことです。

The special version name system tells rbenv to use the system Ruby (detected by searching your $PATH ).

投稿2021/04/13 07:14

mather

総合スコア6759

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問