Bei der Installation und Aktualisierung von TeX Live treten Probleme auf

Bei der Installation und Aktualisierung von TeX Live treten Probleme auf

Wenn Sie die neueste Version von TeX Live manuell wie folgt installiert haben (Installation als rootBenutzer):

wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xvzf install-tl-unx.tar.gz
cd install-tl-*
perl ./install-tl

Beim Aktualisierungsversuch können Fehler auftreten.

Beim Ausführen tlmgr update --all(als Nichtbenutzer root) treten Fehler bezüglich auf cannot write to directory.

Bei Verwendung von root(oder sudo tlmgr update --all) haben die Fehler die Form

tlmgr: Local TeX Live (2020) is older than remote repository (2022). Cross release updates are only supported with
update-tlmgr-latest(.sh/.exe) --update See https://tug.org/texlive/upgrade.html for details.

oder bash: tlmgr: command not found.

Wie beheben Sie diese Probleme?

update-tlmgr-latestSollten Sie die Sache von oben steuern ?

Antwort1

Als normaler Benutzer sollten Sie nicht in der Lage sein, in die systemweite Installation von TeX Live zu schreiben. Daher ist dieser Fehler sowohl gut als auch richtig. Sie sollten entweder einen bestimmten Systembenutzer (z. B. texlive) oder den Superuser verwenden root. Die Verwendung sudozum Ausführen ist dasselbe wie die Verwendung von rootund wird funktionieren (wenn Sie jedoch einen Systembenutzer für die Erstinstallation verwendet haben, sollten Sie nur diesen Benutzer verwenden, nicht root).

Wenn tlmgres nicht gefunden wird, müssen Sie den Pfad zur tlmgrausführbaren Datei zum rootPfad hinzufügen:

Ausführen sudo su - ; nano ~/.bashrc(vorausgesetzt, Sie verwenden es bashals Shell). Fügen Sie eine Zeile ähnlich der folgenden hinzu, speichern Sie und beenden Sie.

export PATH=/usr/local/texlive/2022/bin/linux-x86_64/:${PATH}

Wenn Sie das erhalten cross version error, ist die Lösung dieselbe: Fügen Sie den richtigen Pfad vor den rootPfad von ein, und dieser wird ausgewählt.

Warum gibt es jedoch eine Version, die Sie nicht installiert haben?

Im Allgemeinen handelt es sich dabei um eine Version, die von einem Paketmanager installiert wird, um eine Abhängigkeit von etwas zu erfüllen, das Sie installiert haben. Dies kann etwas so Einfaches wie ein Editor sein, der über den TeX-Modus verfügt (der Editor Kileentspricht dieser Beschreibung).

Kann das alte TeX Live entfernt werden?

Wahrscheinlich ja. Aber verwenden Sie es NICHT, rmum es zu löschen. Das wird mehr Probleme verursachen, als es löst. Verwenden Sie den Paketmanager, dafür ist er da. Es kann jedoch sein, dass er versucht, einige Dinge zu entfernen, die Sie haben möchten, achten Sie also auf die Liste der Dinge, die entfernt werden.

Wenn Sie Debian Linux verwenden, gibt es einige sehr schöneAnweisungenum Ihren Paketmanager ( apt, apper, synaptic) davon zu überzeugen, dass Sie TeX Live haben, sodass er nicht erneut versucht, eine veraltete Version zu installieren. Möglicherweise können Sie RPM ( yum, dnf) auf RedHat-basierten Distributionen davon überzeugen, aber der genaue Vorgang ist anders und wird in diesem Link nicht behandelt. Jemand aufunix&linux.SEkann Ihnen dabei möglicherweise helfen, liegt aber außerhalb des Rahmens dieser Site.

Aktualisierung von Releases (z. B. von 2022 auf 2023):

Einer der oben genannten Fehler gibt an, dass ausgeführt wird update-tlmgr-latest(.sh/.exe) --update. Wenn Sie diesen Befehl kopieren und ausführen, funktioniert er nicht. Unter Windows würden Sie verwenden update-tlmgr-latest.exe --update, und es sollte funktionieren. Unter Linux verwenden Sie update-tlmgr-latest.sh --update. Der Fehler ist nicht besonders klar, setzt aber auch eine gewisse Vertrautheit mit Dateierweiterungen und ausführbaren Formaten für verschiedene Systeme voraus. Ich habe keinen Vorschlag für eine bessere Fehlermeldung, falls jemand, der sie beheben kann, dies hier liest.

Persönlich würde ich die Version nicht mit aktualisieren update-tlmgr-latest. Stattdessen würde ich eine neue Version installieren und dabei entweder die vorhandene Version beibehalten oder sie entfernen, sobald ich mit der Funktion der neuen Version für meine Dokumente zufrieden bin.

Installation mit einem Systembenutzer:

Oben wurde die Verwendung eines Systembenutzers erwähnt, nicht rootdie Installation des TeX Live-Systems. So geht das:

Erstellen Sie mithilfe von rootoder sudoeinen neuen Systembenutzer texlivemit dem folgenden Befehl (oder einem im Wesentlichen ähnlichen Befehl):

useradd -d /usr/local/texlive -m -r texlive
passwd -l texlive

Dadurch wird ein Systembenutzer ( -r) mit dem Home-Verzeichnis /usr/local/texlive( -d /usr/local/texlive -m) erstellt und das Passwort gesperrt (sodass kein Passwort zum Anmelden beim Konto vorhanden ist). Verwenden Sie , sudo su - texliveum zum texliveBenutzer zu wechseln, und führen Sie dann die Installation wie in der Frage beschrieben aus.

Der Hauptgrund hierfür ist die Trennung der Verantwortlichkeiten. Der texliveBenutzer wird ausschließlich für die Administration der TeX Live-Installation verwendet. Er kann nicht für andere Systemadministrationsaufgaben verwendet werden und es ist völlig klar, welche Dateien Teil der TeX Live-Installation sind (sie gehören texlive, nicht root).

Erweitertes Thema – Mehrere Versionen von TeX Live arbeiten zusammen:

(die automatische Version funktioniert unter Linux, funktioniert möglicherweise unter Mac, funktioniert nicht unter Windows)

Gute Neuigkeiten! Es ist möglich, mehrere verschiedene Versionen von Tex Live zu installieren, ohne dass sie sich gegenseitig beeinträchtigen. Installieren Sie jede Version in einem separaten Verzeichnis, beispielsweise /usr/local/texlive/<year>/.

Um zwischen Versionen zu wählen, können Sie Ihre PATHVariable manuell ändern oder den Computer dies automatisch für Sie tun lassen. Damit der Computer dies tut, können Sie das environment-modulesPaket mit einer Moduldatei ähnlich dieser verwenden (erstellen Sie eine für jede Version von TeX Live, die Sie installiert haben):

#%Module1.0#######################################################################
#
#
module-whatis   "Loads settings for the TeXLive 2023"
prepend-path    PATH            /usr/local/tex/texlive/2023/bin/x86_64-linux
prepend-path    MANPATH         /usr/local/tex/texlive/2023/texmf/doc/man
prepend-path    INFOPATH        /usr/local/tex/texlive/2023/texmf/doc/info

Wenn Sie für jede Version eine solche Moduldatei haben, können Sie einfach eine Version mit auswählen module load texlive/2023und mit zur Standardversion zurückkehren module remove texlive/2023. Spezifische Hilfe zur Verwendung von Moduldateien auf diese Weise finden Sie hier:unix&linux.SEist eine gute Anlaufstelle, um um Hilfe zu bitten (natürlich nachdem Sie sich die Manpages angesehen haben).

verwandte Informationen