Изменение переменной среды PATH для всех пользователей. (Ubuntu)

Недавно я скомпилировал Ruby Enterprise Edition (REE) на сервере Ubuntu 8.04.

Я хотел бы обновить мой PATH, чтобы обеспечить эту новую версию Ruby (находится в /opt/ruby_ee/bin) заменяет старую версию в /usr/local/bin, (Я все еще хочу старую версию, хотя.)

Я хотел бы, чтобы эти изменения PATH затронули всех пользователей и crontabs.

Попытка решения № 1:

Документация REE рекомендует размещать папку bin REE в начале глобальной переменной PATH в /etc/environment, Я изменил путь в этом файле, чтобы прочитать:

PATH="/opt/ruby_ee/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

Это не повлияло на мой PATH совсем.

Попытка решения № 2:

Затем я следовал этим инструкциям и обновил настройку PATH в /etc/login.defs а также /etc/crontab, (Я не менял /etc/sudoers.)

Это не повлияло на мой PATH либо даже после выхода из системы и перезагрузки сервера.

Дополнительная информация:

  • Кажется, у меня возникла та же проблема, описанная здесь.
  • Я тестирую с помощью команд echo $PATH " а также " ruby -v ".
  • Моя оболочка bash. мой .bashrc не отменяет мой путь
  • Да, я слышал о проекте Ruby Version Manager.;)

2 ответа

Решение

Вы пытались изменить bashrc по умолчанию? Он должен быть расположен в /etc/bashrc или /etc/bash.bashrc (я думаю, что это второй в Ubuntu). Затем в вашем домашнем каталоге убедитесь, что ваш.bash_profile содержит:

if [ -f /etc/bash.bashrc ]; then
    . /etc/bash.bashrc
fi

Это обеспечит считывание переменных, определенных для всей системы, в оболочку пользователя. Этот оператор if должен быть включен по умолчанию в файл.bash_profile, созданный при adduser (Я знаю, что это в RHEL).

Просто быть чистым, /etc/environment не загружается, пока вы не откроете новую оболочку / войдите снова.
Вы выходили из системы и включались?

Другие вопросы по тегам