sudoのときだけrvmで入れたrubyを使ってくれない
sudoのときだけrvmで入れたrubyじゃなくてもとから入ってた/usr/bin/rubyを使うのでgemを入れるとき困った。
$ ruby -v ruby 1.9.3p545 (2014-02-24 revision 45159) [i686-linux] $ sudo ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-linux] $ which ruby /usr/local/rvm/rubies/ruby-1.9.3-p545/bin/ruby $ sudo which ruby /usr/bin/ruby
原因
sudoのとき$PATHが引き継がれてなかった。
以下のページの通りにして解決。
$ sudo visudoを叩いて、
Defaults env_keep += ほにゃらららが書いてある行を探そう。
それらの直下にDefaults env_keep += "PATH"
を追加し、
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin ↓ # Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
とコメントアウトすれば、PATHが通るようになります。
CentOS で sudo 時に実行ユーザーのPATHを引き継ぐ - Qiita