Schnellkorrektur: Da Sie bereits das richtige $PATH
Set in Ihrer Umgebung haben (über die /etc/profile
Änderungen), können Sie Folgendes verwenden:
sudo env PATH="$PATH" tlmgr
Grundsätzlich setzt sudo den Wert von $PATH
(in der Tat die gesamte Umgebung) auf einen "bekannt guten" Wert zurück
und ignoriert daher alle Änderungen, die Sie an Ihrer lokalen Umgebung vorgenommen haben. Der
obige Befehl env legt die PATH
Variable in der Umgebung fest, in der tlmgr
sie ausgeführt wird, sodass sie mit dem Wert ausgeführt wird, den $PATH
Sie in der Befehlszeile angegeben haben.
Um zu vermeiden, dass Sie all das für jeden TeXlive-Befehl eingeben, können Sie in Ihrer Shell einen Alias definieren : Fügen Sie
der .bashrc
Datei in Ihrem Home die folgende Zeile hinzu :
alias psudo='sudo env PATH="$PATH"'
und dann können Sie dies einfach an einer Eingabeaufforderung ausgeben:
psudo tlmgr
Außerdem führt sudo keine Login-Shell aus, um den Befehl auszuführen, weshalb Ihre "profile.d" -Tricks für root nicht funktionierten. Sie können sudo zwingen
, einen Befehl in einer Shell auszuführen. Dies ist eine alternative Methode, um denselben Effekt zu erzielen:
sudo sh -l -c tlmgr
Auch hier können Sie einen Shell-Befehlsalias definieren , um dies zu verkürzen:
alias shsudo='sudo sh -l -c'
welches verwendet werden kann als:
shsudo tlmgr