sudo 経由で rbenv を使えるようにする

  • 12
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

普通にシステムワイド(/usr/local/rbenv配下)に rbenv をインストールした際、sudo 経由で rbenv を使いたいが、普通に sudo すると

$ sudo rbenv
sudo: rbenv: コマンドが見つかりません

という感じで rbenv を見つけることができない。(rbenv で入れた gem コマンドなども同様)

sudores の設定で secure_path という設定で特定のpath以外にはpathは通さない設定になっているのが原因。
対処方法としては3つ

  • sudo するときに -i オプションをつける(対象ユーザの.profileなどを読み込んだ状態で実行される)
  • secure_path の設定を解除する
  • secure_path にrbenvのpathを追加する

今回、できるだけsecureな状態は維持しつつ面倒を省きたいので3番めの方法で対応することにした。

visudo で設定ファイルを開いて、secure_path の設定箇所を以下のように変更

(変更前)
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
↓
(変更後)
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rbenv/bin:/usr/local/rbenv/shims

これで sudo 経由で rbenv や gem コマンドが使えるようになった。

参考