Где я могу добавить в свой путь, чтобы он был доступен для всех пользователей, для всех оболочек, все время. В этом случае я хочу, чтобы / opt / grails / bin всегда был доступен, даже если он запущен как пользователь tomcat от jenkins.
Есть 6+ файлов, в которые вы можете вставить это, но я еще за годы работы в качестве разработчика программного обеспечения, который иногда обрабатывает задачи системного администратора Linux, чтобы найти четкое объяснение того, где вы делаете export PATH=$PATH:/opt/grails/bin
и сделать его доступным для каждого пользователя, любого типа оболочки, в любое время.
Я использую Ubuntu 10.10, если это важно.
Спасибо
Обычно это / etc / profile (читается с помощью bash, dash, ksh и его режимов "sh").
Для пользователей системы вы можете объявить отдельные переменные в / etc / environment. Это не очень хорошая практика, но она работает (я использовал ее для JAVA_HOME и т. Д.).
Основная проблема с PATH заключается в том, что он должен быть разным для системных пользователей и для системных суперпользователей. Поэтому вместо одной переменной в / etc / environment я бы попробовал исправить / etc / profile (способ debian / ubuntu - поместить сценарий в /etc/profile.d/).
Однострочный экспорт - это басизм, проверьте первые строки / etc / profile на предмет переносимого синтаксиса (для работы с / bin / sh, тире и т. Д.).
Это решение не должно работать для csh, tcsh и подобных оболочек, но должно работать с оболочками типа bourne.
В ubuntu вы можете исследовать PAM, в котором есть что сказать о среде и PATH, но это больше касается входа в систему, чем инициализации оболочки.
Обновить: Чтобы перейти на PAM (su, sudo и т. Д.), Попробуйте: /etc/login.defs, возможно, единственный файл, который вам нужен.