'texdoc' schlägt fehl, wenn ein anderes texlive-* von 'apt' installiert wird

'texdoc' schlägt fehl, wenn ein anderes texlive-* von 'apt' installiert wird

Ich hatte TexLive von „texlive2020-20200406.iso“ korrekt in Ubuntu 20.04 installiert und es eine Zeit lang zum Schreiben von Berichten verwendet. Vor Kurzem habe ich über einen Terminalbefehl einige Pakete gefunden apt search texliveund einige davon installiert. Von da an texdockann der Befehl nicht mehr nach Dokumenten suchen. Ich bin sicher, dass der Befehl vorher gut funktioniert hat.

Beispiel: Der Befehl texdoc beamerhat zuvor „beameruserguide.pdf“ geöffnet, jetzt öffnet er jedoch ein Beamer-Beispiel in einem anderen Pfad.

Es scheint, dass die über die ISO-Datei installierten Pakete aptden Pfad der aus der ISO-Datei installierten Pakete überschreiben.

apt list --installed | grep texlivegibt die Liste unten an:

texlive-base/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-binaries/focal,now 2019.20190605.51237-3build2 amd64 [installed,automatic]
texlive-font-utils/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-fonts-extra-links/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-fonts-extra/focal,focal,now 2019.202000218-1 all [installed]
texlive-fonts-recommended/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-chinese/focal,focal,now 2019.20200218-1 all [installed]
texlive-lang-cjk/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-japanese/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-korean/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-other/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-latex-base/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-latex-extra/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-latex-recommended/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-pictures/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-plain-generic/focal,focal,now 2019.202000218-1 all [installed,automatic]

Ich bin sehr dankbar, wenn Sie mir bei der Lösung dieses Problems helfen können.


Ergänzung: Der Pfad wird durch Bearbeiten von „~/.bashrc“ wie unten angegeben festgelegt (nach der Installation von „.iso“).

export MANPATH=${MANPATH}:/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2020/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2020/bin/x86_64-linux

Ergänzung: Befehl which texdocund echo $PATHAusgaben:

# which texdoc
/usr/bin/texdoc

(Ich umbreche Zeilen zum leichteren Lesen)

# echo $PATH
/home/xiaocy/.local/bin:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:/usr/bin:
/sbin:
/bin:
/usr/games:
/usr/local/games:
/snap/bin:
/usr/local/texlive/2020/bin/x86_64-linux:
/usr/local/texlive/2020/bin/x86_64-linux:
/usr/local/texlive/2020/bin/x86_64-linux

Abschluss

Das Problem wird durch die Pfadüberschreibung verursacht. Das Problem kann durch die folgenden Änderungen ~/.bashrcbehoben ~/.profilewerden.

export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:${MANPATH}
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:${INFOPATH}
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:${PATH}

Ich weiß nicht, ob ich diese Schlussfolgerung selbst ziehen darf. Die Schlussfolgerung wurde mit Hilfe von @daleif gezogen (siehe Kommentare). Vielen Dank!

Antwort1

Dies ist ein häufiger Fehler. Zunächst durchsuchen Betriebssysteme den PATH von links nach rechts. (Hier wird der Pfad durch Doppelpunkte getrennt). Dann hängt es jedes Pfadstück an einen Funktionsaufruf an, bis das erste gefunden wird. Hier haben Sie zwei Latex-Installationen, die apt-Installation und eine TL2020 über ISO. Da die apt-Installation Texlive-Sachen so hinzufügt, dass sie über gefunden werden /usr/bin/, müssen wir dafür sorgen, dass der TL2020-Teil des Pfads vor kommt /usr/bin/. Die Standardmethode besteht darin, sicherzustellen, dassvoranstellender TL2020-Pfad.

Verwenden Sie daher

export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:${MANPATH}
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:${INFOPATH}
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:${PATH}

nicht

export MANPATH=${MANPATH}:/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2020/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2020/bin/x86_64-linux

Stellen Sie außerdem sicher, dass Sie dies auch hinzufügen .profile(Sie müssen sich ab- und wieder anmelden, damit eine .profileBearbeitung wirksam wird). Dies liegt daran, dass ein Editor, der über ein Menü oder durch Doppelklicken auf eine Datei gestartet wird, nie etwas mit Bash zu tun hat und daher die Änderung nie sieht.

verwandte Informationen