sudo時のPATH(CentOS5.5)
うえちょこ@ぼろぐ» [Linux]CentOS 5.3/5.4のsudoコマンドが曲者。
CentOS5.5では、デフォルトで、sudoを実行したユーザのPATHが引き継がれないようです。この現象のおかげで、npmのインストールの際にnodeを見つけることができず、インストールが失敗するということがありました。
# nodejsはインストール済み $ which node /usr/local/bin/node # npmのインストールスクリプトをダウンロード $ curl http://npmjs.org/install.sh > npm_install.sh # sudoで実行 → 「nodejsないんだけど」って言われる。 $ sudo sh npm_install.sh npm cannot be installed without nodejs. Install node first, and then try again.
解決方法
/etc/sudoersに「Default env_keep」というsudo実行ユーザから引き継ぐ環境変数を設定する項目があります。そこにPATHを追加すればOK。
# env_keepに追加 Defaults env_keep = "PATH COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \ ・・・ # この1行を追加してもOK Default env_keep+="PATH"