Оновлення:
Встановлення глобальних змінних середовища все ж слід виконувати /etc/environment
, але, як ви вказали, використання 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
що надасть оболонці з привілеями кореня, але містить правильний PATH.
Оригінальний відповідь
Ви повинні встановити його /etc/environment
.
Спробуйте sudo YOUR_TEXT_EDITOR /etc/environment
(спочатку переконайтеся, що створити резервну копію).
Для отримання додаткової інформації: Змінні середовища
Загальносистемні змінні середовища
Налаштування змінної середовища, які впливають на систему в цілому (а не лише на конкретного користувача), не повинні розміщуватися в жодному з багатьох сценаріїв системного рівня, які виконуються під час завантаження системи або сеансу на робочому столі, а в
/etc/environment
- Цей файл призначений спеціально для системних параметрів змінної середовища. Це не файл скриптів, а складається з виразів призначення, по одному на рядок. Зокрема, цей файл зберігає загальносистемні параметри та параметри шляху.
Не рекомендовано:
/etc/profile
- Цей файл виконується щоразу, коли вводиться оболонка для входу в баш (наприклад, при вході з консолі або над ssh), а також DisplayManager під час завантаження сеансу робочого столу. Це, мабуть, файл, до якого ви звернетеся, запитуючи ветеранських системних адміністраторів про змінні середовища. Однак в Ubuntu цей файл робить трохи більше, ніж викликає файл /etc/bash.bashrc.
/etc/bash.bashrc
- Це загальносистемна версія файлу ~ / .bashrc. Ubuntu налаштовано за замовчуванням для виконання цього файлу щоразу, коли користувач вводить оболонку або середовище робочого столу.