Jak ustawić zmienne PATH dla wszystkich użytkowników na serwerze?

52

Właśnie skończyłem instalować LaTeX na serwerze Ubuntu mojej firmy, z którego wszyscy korzystamy SSH. Pod koniec instalacji jest napisane:

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.

Jak to zrobić, aby te zmienne były ustawione dla wszystkich użytkowników w systemie? (I tak, mam uprawnienia sudo).

Rob S.
źródło
Odpowiedź @ geirha (z komentarzem Roba do MANPATH) rozwiązuje ten problem, z wyjątkiem zmiennej INFOPATH. Chociaż wyobrażam sobie, że użytkownicy często go nie używają (?), Ale czy ktoś zna prawidłową lokalizację, aby to ustawić? Czy tak też powinno być /etc/environment ?
belacqua
@jgbelacqua afaik Debian i niektóre inne dystrybucje Linuksa używają go, ale nie Ubuntu. A przynajmniej to najlepsze, co mogłem zebrać przez godzinę szukając w google.
Rob S.
Po zainstalowaniu TeXlive 2010 powinien był zapytać, czy chcesz utworzyć dowiązania symboliczne dla wszystkich plików binarnych. Gdybyś powiedział „tak”, to wcale nie byłby problem.
frabjous
@frabjous Nigdy mnie nie pytał. Jedyne polecenie, jakie kiedykolwiek wydałem, to „i” na początku, aby rozpocząć instalację. W każdym razie po ustawieniu zmiennych wszystko działa idealnie.
Rob S.
1
@frabjous: Wydaje się, że w instalatorze brakuje opcji dowiązania symbolicznego. Dzisiaj zainstalowałem TeXLive 2011 i już go mogę znaleźć. TeXLive instalowałem w wielu wersjach co najmniej kilkanaście razy wcześniej, więc zastanawiałem się, dlaczego już go nie ma.
Martin Scharrer

Odpowiedzi:

57

Dodajesz je do /etc/environment.

Prawdopodobnie ma już linię dla PATH, więc po prostu dołącz :/usr/local/texlive/2010/bin/x86_64-linuxna końcu. Następnie dodaj dwie nowe linie dla MANPATH i INFOPATH.

Zobacz https://help.ubuntu.com/community/EnvironmentVariables .

Po zakończeniu edycji /etc/environmentwyloguj się i zaloguj ponownie, a następnie sprawdź, czy np echo "$MANPATH". Wyświetla dodaną wartość.

geirha
źródło
Na koniec musiałem także edytować plik /etc/manpath.config. Dzięki.
Rob S.
2
Usunąłem swoją odpowiedź, ponieważ wydaje się to lepszym wyborem. Według help.ubuntu.com/community/EnvironmentVariablesSystem-wide /etc/environment jest miejscem „Ustawienia zmiennych środowiskowych, które wpływają na cały system (a nie tylko konkretnego użytkownika) [...]” /etc/profilei /etc/bash.bashrcsą wymienione jako „Niezalecane”
belacqua
Irytująco nie działa dla roota!
Owl
7

Dodaj te domyślne ŚCIEŻKI do /etc/profile. Będzie działać dla bash i sh. Bash jest domyślny w Ubuntu.

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

echo $SHELLmoże służyć do określania powłoki bieżącego użytkownika lub może być przeglądany z /etc/passwdpliku.

Alternatywnie możesz to również włączyć /etc/environment. Tutaj możesz po prostu dodać PATH na końcu instrukcji PATH.

Jamess
źródło
Otworzyłem etc / profile w vimie i nie było w tym nic o ŚCIEŻCE. Dziękuję za odpowiedź tak samo.
Rob S.
17
Kolejność wykonywania plików to / etc / environment -> / etc / profile -> /etc/bash.bashrc -> /home/<user>/.profile -> /home/<user>/.bashrc
Jamess
edycja zmiennej / etc / profile path może uszkodzić system i lepiej go unikać. szczególnie gdy łączysz się ze zdalnym hostem przez ssh.
AmirHossein Rezaei