PATH変数はsudoコマンドでは機能しません

PATH変数はsudoコマンドでは機能しません

次のように変数に新しいパスを入力すると$PATH

PATH=$PATH:$HOME/pear/bin/

その後、Pear bin 内のプログラムにアクセスできるようになります。期待どおりに動作しますが、次の操作を実行できます。

phpunit -version

phpunit は私の pear bin にあるプログラムなので、これは実行できません:

sudo phpunit -version

次のエラーが発生します:

sudo: phpunit: command not found

コマンドsudoにはユニバーサルアクセスがありませんか?

答え1

sudoオプション-Eは環境変数を保持しますが、そうでない場合は環境変数の大部分が破棄されます。したがって、次のコードが機能するはずです。

sudo -E phpunit -version

答え2

これについてはよく分かりませんですが、試してみてください。

PATH=$PATH:$HOME/pear/bin/おそらく、ルートの PATH 変数に同じ PATH を追加する必要があります。

sudo -i
echo $PATH

ルートの PATH ディレクトリを確認します。

次にルートアカウントで

ls -a

ルート アカウントのファイルが.bashrc表示されます。.profile

PATH=$PATH:$HOME/pear/bin/適切なファイルに行を追加します。

関連情報