Как установить переменные PATH для всех пользователей на сервере?


52

Я только что закончил установку LaTeX для сервера Ubuntu моей компании, который мы все используем по SSH. В конце установки это говорит это:

Add /usr/local/texlive/2010/texmf/doc/man to MANPATH, if not dynamically determined.

Add /usr/local/texlive/2010/texmf/doc/info to INFOPATH.

Most importantly, add /usr/local/texlive/2010/bin/x86_64-linux to your PATH for current and future sessions.

Как мне сделать это, чтобы эти переменные были установлены для всех пользователей в системе? (И да, у меня есть разрешения sudo).


Ответ @ geirha (с комментарием Роба к MANPATH) разрешает это, за исключением переменной INFOPATH. Хотя я представляю, что это не часто используется пользователями (?), Кто-нибудь знает правильное местоположение, чтобы установить это? Должно ли это быть /etc/environment ?
belacqua

@jgbelacqua afaik Debian и некоторые другие дистрибутивы Linux используют его, но не Ubuntu. Или, по крайней мере, это лучшее, что я мог собрать в поиске в Google в течение часа.
Роб С.

Когда вы установили TeXlive 2010, он должен был спросить вас, хотите ли вы создать символические ссылки для всех двоичных файлов. Если бы вы сказали «да», это не было бы проблемой вообще.
радостный

@ frabjous Меня никогда не спрашивали. Единственной командой, которую я когда-либо давал, было «i» в начале, чтобы начать установку. В любом случае, после установки переменных все работает отлично.
Роб С.

1
@frabjous: похоже, что в установщике отсутствует опция символической ссылки. Я установил TeXLive 2011 сегодня и мог найти его больше. Я установил TeXLive в нескольких версиях, по крайней мере, дюжину раз прежде, поэтому я удивился, почему его больше нет.
Мартин Шаррер

Ответы:


57

Вы добавляете это к /etc/environment.

Скорее всего, уже есть строка для PATH, так что вы просто добавьте :/usr/local/texlive/2010/bin/x86_64-linuxк концу этого. Затем добавьте две новые строки для MANPATH и INFOPATH.

См. Https://help.ubuntu.com/community/EnvironmentVariables .

После редактирования /etc/environmentвыйдите и снова войдите в систему и проверьте, что, например, echo "$MANPATH"выводит добавленное вами значение.


В конце я также должен был отредактировать /etc/manpath.config. Благодарю.
Роб С.

2
Я удалил свой ответ, так как это, кажется, лучший выбор. Согласно help.ubuntu.com/community/EnvironmentVariablesSystem-wide /etc/environment это место для «параметров переменных среды, которые влияют на систему в целом (а не только на конкретного пользователя) [...]» /etc/profileи /etc/bash.bashrcперечислены как «не рекомендуется»
Белаква

Раздражительно не работает для root!
Сова

7

Добавьте эти стандартные пути к /etc/profile. Это будет работать для Bash и Sh. Bash по умолчанию в Ubuntu.

PATH=$PATH:<new path you need to add>

echo $SHELLможет использоваться для определения оболочки текущего пользователя или может быть просмотрено из /etc/passwdфайла.

Кроме того, вы можете включить его в /etc/environment. Здесь вы можете просто добавить PATH в конце оператора PATH.


Я открыл etc / profile в vim, и там не было ничего, касающегося PATH. Спасибо за ответ точно так же.
Роб С.

17
Порядок выполнения файлов: / etc / environment -> / etc / profile -> /etc/bash.bashrc -> /home/<user>/.profile -> /home/<user>/.bashrc
Jamess

редактирование переменной пути / etc / profile может повредить систему и ее лучше избегать. особенно когда вы подключаетесь к удаленному хосту через ssh.
Амир Хоссейн Резаей
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.