Aggiornare:
L'impostazione delle variabili di ambiente globali deve ancora essere eseguita /etc/environment
, ma come hai sottolineato, l'utilizzo sudo -s
ha l'effetto di queste variabili "svanite".
La ragione di ciò è sudo
una politica di reimpostazione dell'ambiente e impostazione di un percorso sicuro . Si è abilitata di default:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Pertanto, qualunque cosa sia impostata in /etc/environment
for the path viene ignorata sudo
.
La pagina di manuale per gli sudoers
stati:
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.
Come soluzione alternativa, è possibile utilizzare sudo su
che fornirà una shell con privilegi di root ma contenente il PERCORSO giusto.
Risposta originale
Dovresti impostarlo /etc/environment
.
Prova sudo YOUR_TEXT_EDITOR /etc/environment
(assicurati di creare prima un backup).
Per ulteriori informazioni: EnvironmentVariables
Variabili d'ambiente a livello di sistema
Le impostazioni delle variabili di ambiente che incidono sul sistema nel suo complesso (piuttosto che solo su un determinato utente) non devono essere inserite in nessuno dei tanti script a livello di sistema che vengono eseguiti quando il sistema o la sessione desktop vengono caricati, ma in
/etc/environment
- Questo file è specifico per le impostazioni delle variabili di ambiente a livello di sistema. Non è un file di script, ma consiste piuttosto di espressioni di assegnazione, una per riga. In particolare, questo file memorizza le impostazioni locali e del percorso a livello di sistema.
Non consigliato:
/etc/profile
- Questo file viene eseguito ogni volta che viene inserita una shell di accesso bash (ad es. Quando si accede dalla console o tramite ssh), nonché dal DisplayManager quando viene caricata la sessione desktop. Questo è probabilmente il file a cui ti riferirai quando chiedi agli amministratori di sistema UNIX del veterano delle variabili di ambiente. In Ubuntu, tuttavia, questo file fa poco di più quindi invoca il file /etc/bash.bashrc.
/etc/bash.bashrc
- Questa è la versione dell'intero sistema del file ~ / .bashrc. Ubuntu è configurato per impostazione predefinita per eseguire questo file ogni volta che un utente accede a una shell o all'ambiente desktop.