Mise à jour:
La définition des variables d’environnement globales doit toujours être effectuée dans /etc/environment
, mais comme vous l’avez fait remarquer, en utilisant sudo -s
, l’effet de ces variables est "disparu".
La raison en est que sudo
a pour stratégie de réinitialiser l'environnement et de définir un chemin sécurisé . Il est activé par défaut:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Ainsi, tout ce qui est défini dans /etc/environment
pour le chemin est remplacé par sudo
.
La page de manuel de sudoers
indique:
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.
Pour contourner ce problème, vous pouvez utiliser sudo su
qui fournira un shell avec des privilèges root mais contenant le PATH correct.
Réponse originale
Vous devez le définir dans /etc/environment
.
Essayez sudo YOUR_TEXT_EDITOR /etc/environment
(assurez-vous de créer d'abord une sauvegarde).
Pour plus d'informations: EnvironmentVariables
Variables d’environnement à l’échelle du système
Paramètres de variables d'environnement qui affectent le système dans son ensemble
(plutôt qu’un utilisateur particulier) ne doit être placé dans aucun des
les nombreux scripts au niveau du système qui sont exécutés lorsque le système ou le
session de bureau sont chargés, mais dans
/etc/environment
- Ce fichier est spécifiquement destiné aux paramètres de la variable d'environnement système. Ce n'est pas un fichier script, mais plutôt
se compose d'expressions d'affectation, une par ligne. Plus précisément, cette
Le fichier stocke les paramètres régionaux et les paramètres de chemin d'accès à l'échelle du système.
Non recommandé:
/etc/profile
- Ce fichier est exécuté à chaque fois qu’un shell de connexion bash est entré (par exemple lors de la connexion depuis la console ou via ssh),
ainsi que par le DisplayManager lorsque la session du bureau est chargée. C'est
probablement le fichier auquel vous serez référé en demandant à un vétéran UNIX
administrateurs système sur les variables d'environnement. Dans Ubuntu, cependant,
Ce fichier n'invoque guère plus le fichier /etc/bash.bashrc.
/etc/bash.bashrc
- Il s'agit de la version du fichier ~ / .bashrc à l'échelle du système. Ubuntu est configuré par défaut pour exécuter ce fichier
chaque fois qu'un utilisateur entre dans un environnement de shell ou de bureau.