Actualizar:
La configuración de las variables de entorno global aún debe realizarse /etc/environment
, pero como usted señaló, el uso sudo -s
tiene el efecto de que estas variables se "desvanecen".
La razón de esto es que sudo
tiene una política de restablecer el entorno y establecer una ruta segura . Está habilitado por defecto:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Por lo tanto, todo lo que se establece en /etc/environment
el camino se anula sudo
.
La página del manual para los sudoers
estados:
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.
Como solución alternativa, puede usar sudo su
eso que proporcionará un shell con privilegios de root pero que contiene la RUTA correcta.
Respuesta original
Deberías configurarlo /etc/environment
.
Intente sudo YOUR_TEXT_EDITOR /etc/environment
(asegúrese de crear una copia de seguridad primero).
Para más información: EnvironmentVariables
Variables de entorno de todo el sistema
La configuración de las variables de entorno que afectan al sistema en su conjunto (en lugar de solo a un usuario en particular) no debe colocarse en ninguno de los muchos scripts de nivel de sistema que se ejecutan cuando se carga el sistema o la sesión de escritorio, sino en
/etc/environment
- Este archivo está específicamente diseñado para configuraciones variables de entorno de todo el sistema. No es un archivo de script, sino que consiste en expresiones de asignación, una por línea. Específicamente, este archivo almacena la configuración regional y la configuración de ruta de todo el sistema.
No recomendado:
/etc/profile
- Este archivo se ejecuta cada vez que se ingresa un shell de inicio de sesión bash (por ejemplo, al iniciar sesión desde la consola o sobre ssh), así como por el DisplayManager cuando se carga la sesión de escritorio. Este es probablemente el archivo al que se hará referencia cuando pregunte a los veteranos administradores del sistema UNIX sobre las variables de entorno. Sin embargo, en Ubuntu, este archivo hace poco más que invocar el archivo /etc/bash.bashrc.
/etc/bash.bashrc
- Esta es la versión de todo el sistema del archivo ~ / .bashrc. Ubuntu está configurado de manera predeterminada para ejecutar este archivo cada vez que un usuario ingresa a un shell o al entorno de escritorio.
visudo
(necesita permisos de root) para editar la configuración de ruta segura. Esta no es una práctica recomendada. Es solo aquí para la educación.sudo -i
simulará un inicio de sesión (de manera similar asudo su -
) y, por lo tanto, le dará estas variables de entorno.fuente