Ich habe TeX Live 2011 Vanilla installiert und Probleme beim Einstellen des TeX Live-Pfads für root (in Ubuntu 11.10).
Das Problem ist, dass ich beim Laufen sudo tlmgr
Folgendes bekomme:
sudo: tlmgr: command not found
Um den Pfad für Nicht-Root-Benutzer zu reparieren, war es ausreichend, ihn hinzuzufügen
PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH
zu /etc/profile
.
Ich habe versucht, dieselbe Zeile hinzuzufügen, /root/.bashrc
und ich habe auch versucht, sie hinzuzufügen, /etc/profile.d/zzz-texlive.sh
wie es Herbert in /tex/26624/tlmgr-inaccessible/26626#26626 vorschlägt, aber es hilft nicht.
Antworten:
Schnellkorrektur: Da Sie bereits das richtige
$PATH
Set in Ihrer Umgebung haben (über die/etc/profile
Änderungen), können Sie Folgendes verwenden: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 diePATH
Variable in der Umgebung fest, in dertlmgr
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 :und dann können Sie dies einfach an einer Eingabeaufforderung ausgeben:
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:
Auch hier können Sie einen Shell-Befehlsalias definieren , um dies zu verkürzen:
welches verwendet werden kann als:
quelle
$PATH
in meiner Umgebung beizufügen? Muss ich alsoenv
für jeden Befehl im TeX Live-Pfad, den ich aktivieren möchte, etwas tunsudo
? In / usr / local / texlive / 2011 / bin / x86_64-linux befinden sich ziemlich viele Binärdateien, die Sie möglicherweise als root ausführen möchten.Wenn Sie die Symlinks hinzufügen, müssen Sie kein Skript erstellen. Sie können dies auf zwei Arten tun:
Verwendung der GUI:
sudo env PATH="$PATH" tlmgr --gui
.Verwenden der Befehlszeile (ungetestet, da ich die GUI verwendet habe):
sudo env PATH="$PATH" tlmgr path add
. (Weitere Informationen finden Sie in der tlmgr-Dokumentation. )quelle
Was bei mir funktioniert hat: Ich habe
tlmgr
im GUI-Modus mit begonnenund wählte dann im dritten Menü den vorletzten Punkt (in meinem deutschen Menü Menü "Aktionen") und den Punkt "Verwaltung der symbolischen Links". Im folgenden Dialogfenster I Klicken Sie auf den Button "Symbolische Links erneuern"
funktioniert ohne probleme. Ich bin mir sicher, dass es auch eine Befehlszeilenmethode gibt;)
quelle
Um den Benutzer mit dem Befehl
$PATH
an die vonsudo
mir geänderte/etc/sudoers
Datei zu übergeben,visudo
fügen Sie die folgende Zeile hinzu:Jetzt kann ich ausführen (zB)
oder
und alles funktioniert perfekt.
Ich würde mich über Kommentare zu diesem Ansatz sehr freuen.
quelle
Sie müssen das Verzeichnis von wirklich nicht
tlmgr
zum Pfad hinzufügen . Eine einfache schnelle Lösung istwhich
zB:quelle
Es ist nicht ratsam, TeX Live mit "root" -Privilegien zu installieren und zu verwalten. Erstellen Sie stattdessen das
/usr/local/texlive
Verzeichnis, z. B. mit sudo, und ändern Sie dann den Besitzer in den Benutzer, der TeX Live verwalten soll. Danach kann TeX Live installiert und aktualisiert werden, ohne "root" -Rechte zu verwenden.quelle