Schnellkorrektur: Da Sie bereits das richtige $PATHSet 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 PATHVariable in der Umgebung fest, in der tlmgrsie ausgeführt wird, sodass sie mit dem Wert ausgeführt wird, den $PATHSie 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 .bashrcDatei 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