更新:
グローバル環境変数の設定はで引き続き実行する必要があり/etc/environment
ますが、指摘したように、usingを使用すると、sudo -s
これらの変数の効果は「なくなります」。
その理由には、環境sudo
をリセットし、安全なパスを設定するというポリシーがあります。デフォルトで有効になっています。
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
したがって/etc/environment
、パスに設定されているものはすべてによってオーバーライドされsudo
ます。
sudoers
状態のマニュアルページ:
env_reset If set, sudo will reset the environment to only contain
the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
variables. Any variables in the caller's environment
that match the env_keep and env_check lists are then
added. The default contents of the env_keep and
env_check lists are displayed when sudo is run by root
with the -V option. If the secure_path option is set,
its value will be used for the PATH environment
variable. This flag is on by default.
回避策として、これを使用しsudo su
て、シェルにroot権限を提供しますが、正しいPATHが含まれます。
元の回答
で設定する必要があり/etc/environment
ます。
試してくださいsudo YOUR_TEXT_EDITOR /etc/environment
(最初にバックアップを作成してください)。
詳細情報:EnvironmentVariables
システム全体の環境変数
システム全体(特定のユーザーではなく)に影響する環境変数設定は、システムまたはデスクトップセッションの読み込み時に実行される多くのシステムレベルスクリプトのいずれにも配置しないでください。ただし、
/etc/environment
-このファイルは、システム全体の環境変数設定専用です。スクリプトファイルではなく、1行に1つずつ割り当て式で構成されています。具体的には、このファイルにはシステム全体のロケールとパス設定が保存されます。
非推奨:
/etc/profile
-このファイルは、bashログインシェルに入るたびに(たとえば、コンソールまたはssh経由でログインするとき)、デスクトップセッションがロードされるときにDisplayManagerによって実行されます。これはおそらく、ベテランのUNIXシステム管理者に環境変数について尋ねるときに参照されるファイルです。ただし、Ubuntuでは、このファイルは/etc/bash.bashrcファイルを呼び出すだけで済みます。
/etc/bash.bashrc
-これは、システム全体のバージョンの〜/ .bashrcファイルです。Ubuntuは、ユーザーがシェルまたはデスクトップ環境に入るたびにこのファイルを実行するようにデフォルトで設定されています。