Zainstalowałem wanilkę TeX Live 2011 i mam problem z ustawieniem ścieżki TeX Live dla roota (w Ubuntu 11.10).
Problem polega na tym, że po uruchomieniu sudo tlmgr
dostaję:
sudo: tlmgr: command not found
Aby naprawić ścieżkę dla użytkownika innego niż root, wystarczyło dodać
PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH
do /etc/profile
.
Próbowałem dodać tę samą linię, /root/.bashrc
a także próbowałem dodać ją, /etc/profile.d/zzz-texlive.sh
tak jak sugeruje Herbert w /tex/26624/tlmgr-inaccessible/26626#26626, ale to nie pomaga.
Odpowiedzi:
Szybka poprawka: ponieważ masz już prawidłowy
$PATH
zestaw w swoim środowisku (poprzez/etc/profile
modyfikacje), możesz użyć:Zasadniczo sudo resetuje wartość
$PATH
(całe środowisko) do „znanego dobrego”, a tym samym ignoruje wszelkie zmiany, które wprowadziłeś w swoim lokalnym środowisku. Powyższe polecenie env ustawiaPATH
zmienną w środowisku, w którymtlmgr
jest wykonywane, więc działa z wartością$PATH
podaną w wierszu poleceń.Aby uniknąć wpisywania tego wszystkiego dla każdej komendy TeXlive, możesz zdefiniować alias w swojej powłoce: dodaj następujący wiersz do
.bashrc
pliku w domu:a następnie możesz po prostu wydać to w wierszu polecenia:
Ponadto sudo nie uruchamia powłoki logowania w celu wykonania polecenia, dlatego sztuczki „profile.d” nie działały dla użytkownika root. Możesz zmusić sudo do wykonania polecenia w powłoce, co jest alternatywnym sposobem uzyskania tego samego efektu:
Ponownie możesz zdefiniować alias polecenia powłoki, aby to skrócić:
które mogą być użyte jako:
źródło
$PATH
w moim środowisku? A więc muszę zrobićenv
dla każdego polecenia na ścieżce TeX Live, dla którego chcę włączyćsudo
? W katalogu / usr / local / texlive / 2011 / bin / x86_64-linux znajduje się całkiem sporo plików binarnych, które możesz chcieć uruchomić jako root.Jeśli dodasz dowiązania symboliczne, nie będziesz musiał tworzyć skryptu. Możesz to zrobić na dwa sposoby:
Korzystanie z GUI:
sudo env PATH="$PATH" tlmgr --gui
.Za pomocą wiersza polecenia (nieprzetestowane, ponieważ użyłem GUI):
sudo env PATH="$PATH" tlmgr path add
. (znajdź więcej informacji w dokumentacji tlmgr )źródło
Co mi zadziałało: zacząłem
tlmgr
w trybie GUIa następnie w trzecim menu wybrałem ostatnią pozycję oprócz jednej (w moim niemieckim menu, tj. menu „Aktionen” (akcje?) i pozycji „Verwaltung der symbolischen Links” (administracja symbolicznymi linkami?). W kolejnym oknie dialogowym I kliknąłem przycisk „Symbolische Links erneuern” (odnawiasz linki symboliczne?). Teraz
działa bez problemów. Jestem pewien, że można to zrobić również za pomocą wiersza poleceń;)
źródło
Aby przekazać użytkownika
$PATH
dosudo
zmodyfikowanego/etc/sudoers
pliku za pomocąvisudo
polecenia i dodaj następujący wiersz:Teraz mogę wykonać (np.)
lub
i wszystko działa idealnie.
Byłbym bardzo wdzięczny za wszelkie uwagi dotyczące tego podejścia.
źródło
Naprawdę nie musisz dodawać katalogu
tlmgr
do ścieżki. Proste, szybkie rozwiązanie polega na użyciuwhich
np .:źródło
Nie jest dobrą praktyką instalowanie TeX Live i zarządzanie nim przy użyciu uprawnień „root”. Zamiast tego utwórz
/usr/local/texlive
katalog, np. Używając sudo, a następnie zmień właściciela na użytkownika, który będzie zarządzał TeX Live. Następnie TeX Live można zainstalować i zaktualizować bez korzystania z uprawnień „root”.źródło