'texdoc' falha quando algum outro texlive-* é instalado por 'apt'

'texdoc' falha quando algum outro texlive-* é instalado por 'apt'

Eu instalei o TexLive de 'texlive2020-20200406.iso' corretamente no Ubuntu 20.04 e usei-o para escrever relatórios por um tempo. Recentemente, encontrei alguns pacotes através do comando do terminal apt search texlivee instalei alguns deles. A partir de então, o comando texdocnão poderá mais pesquisar documentos. Tenho certeza de que o comando funcionou bem anteriormente.

Exemplo: O comando texdoc beamerabria 'beameruserguide.pdf' antes, mas agora abre uma amostra do beamer em outro caminho.

Parece que os pacotes instalados aptsubstituem o caminho daqueles instalados a partir do arquivo 'iso'.

apt list --installed | grep texlivedá lista abaixo:

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]

Fico muito grato se você puder me ajudar a resolver esse problema.


Adição: O caminho é definido editando '~/.bashrc' conforme abaixo (após a instalação de '.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

Adição: Comando which texdoce echo $PATHsaídas:

# which texdoc
/usr/bin/texdoc

(Eu envolvo as linhas para facilitar a leitura)

# 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

Conclusão

O problema é causado pela substituição do caminho. Modifique ~/.bashrce ~/.profileconforme abaixo pode resolver este problema.

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}

Não sei se é permitido eu mesmo tirar essa conclusão. A conclusão é tirada com a ajuda de @daleif (ver comentários). Muito obrigado!

Responder1

Este é um erro comum. Primeiro de tudo, os sistemas operacionais pesquisam o PATH da esquerda para a direita. (Aqui o caminho é separado por dois pontos). Em seguida, ele anexa cada parte do caminho a uma chamada de função até que a primeira seja encontrada. Aqui você tem duas instalações de látex, uma apt e uma TL2020 via ISO. Como a instalação do apt adiciona coisas do texlive de forma que sejam encontradas via /usr/bin/, devemos fazer com que a parte TL2020 do caminho venha antes /usr/bin/. O método padrão é certificar-se deacrescentaro caminho TL2020.

Portanto use

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}

não

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

Além disso, certifique-se de adicionar isso também .profile(você precisará sair e entrar novamente para que uma .profileedição tenha algum efeito). Isso ocorre porque qualquer editor iniciado por meio de um menu ou deslizando duas vezes um arquivo nunca vê nada relacionado ao Bash e, portanto, nunca vê a alteração.

informação relacionada