A instalação e atualização do TeX Live apresentam problemas

A instalação e atualização do TeX Live apresentam problemas

Se você instalou manualmente o TeX Live mais recente assim (instalando como rootusuário):

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

você pode receber erros ao tentar atualizar.

Executando tlmgr update --all(como não rootusuário), há erros sobre o cannot write to directory.

Usando root(ou sudo tlmgr update --all), os erros são da forma

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.

ou bash: tlmgr: command not found.

Como você corrige esses problemas?

Você deveria executar a update-tlmgr-latestcoisa de cima?

Responder1

Como um usuário comum, você não deve conseguir gravar na instalação do TeX Live em todo o sistema, portanto, obter esse erro é bom e correto. Você deve usar um usuário específico do sistema (por exemplo texlive, ) ou o superusuário root. Usar sudopara executá-lo é o mesmo que usar roote funcionará (mas se você usou um usuário do sistema para a instalação inicial, você deve usar apenas esse usuário, não root).

Se tlmgrnão for encontrado, você precisa adicionar o caminho do tlmgrexecutável ao rootcaminho do:

Execute sudo su - ; nano ~/.bashrc(supondo que você use bashcomo shell). Adicione uma linha semelhante à seguinte, salve e saia.

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

Se você obtiver o cross version error, a correção é a mesma: adicione o caminho correto à frente do rootcaminho do e ele escolherá esse.

Por que existe uma versão que você não instalou?

Geralmente, será uma versão instalada por um gerenciador de pacotes para atender a uma dependência de algo que você instalou. Isso pode ser algo tão simples quanto um editor que possui o modo TeX (o editor Kilese encaixa nesta descrição).

O antigo TeX Live pode ser removido?

Provavelmente sim. Mas NÃO use rmpara excluí-lo. Isso causará mais problemas do que soluções. Use o gerenciador de pacotes, é para isso que serve. Ele pode tentar remover algumas coisas que você deseja, então preste atenção à lista de coisas que serão removidas.

Se você estiver no Debian Linux, existem alguns muito bonsinstruçõespor convencer seu gerenciador de pacotes ( apt, apper, synaptic) de que você possui o TeX Live, para que ele não tente instalar uma versão desatualizada novamente. Você pode convencer o RPM ( yum, dnf) do mesmo em distros baseadas em RedHat, mas o processo exato é diferente e não é coberto por esse link. Alguém ligadounix&linux.SEpode ajudá-lo com isso, mas está fora do escopo deste site.

Atualizando versões (por exemplo, de 2022 a 2023):

Um dos erros acima especifica a execução do arquivo update-tlmgr-latest(.sh/.exe) --update. Se você copiar esse comando e executá-lo, não funcionará. Se você estiver no Windows, você usaria update-tlmgr-latest.exe --updatee deveria funcionar. Se você estiver no Linux, use update-tlmgr-latest.sh --update. O erro não é particularmente claro, mas também pressupõe alguma familiaridade com extensões de arquivo e formatos executáveis ​​​​para vários sistemas. Não tenho nenhuma sugestão para uma mensagem de erro melhor, caso alguém que possa consertar esteja lendo isto.

Pessoalmente, eu não atualizaria a versão usando update-tlmgr-latest. Em vez disso, eu instalaria uma nova versão, deixando a versão existente no lugar ou removendo-a quando estiver satisfeito com o fato de a nova versão estar funcionando com meus documentos.

Instalando usando um usuário do sistema:

Acima, foi mencionado o uso de um usuário do sistema, e não roota instalação do sistema TeX Live. Veja como fazer isso:

Usando rootou sudo, crie um novo usuário do sistema nomeado texliveusando o seguinte comando (ou algo substancialmente semelhante):

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

Isso criará um usuário do sistema ( -r), com um diretório inicial de /usr/local/texlive( -d /usr/local/texlive -m) e bloqueará a senha (para que não haja senha que possa fazer login na conta). Use sudo su - texlivepara mudar para o texliveusuário e execute a instalação conforme listado na pergunta.

A principal razão para isso é a separação de responsabilidades. O texliveusuário é usado nada mais nada menos do que a administração da instalação do TeX Live. Ele não pode ser usado para nenhuma outra administração de sistema e é muito claro quais arquivos fazem parte da instalação do TeX Live (eles são de propriedade de texlive, não de root).

Tópico avançado - Várias versões do TeX Live trabalhando juntas:

(a versão automática funciona no Linux, pode ou não funcionar no Mac, não funciona no Windows)

Boas notícias! É possível instalar várias versões diferentes do Tex Live, sem que elas interfiram umas nas outras. Instale cada um em um diretório separado, como /usr/local/texlive/<year>/.

Para escolher entre versões, você pode alterar manualmente sua PATHvariável ou pode fazer com que o computador faça isso automaticamente para você. Para fazer o computador fazer isso, você pode usar o environment-modulespacote, com um arquivo de módulo semelhante a este (crie um para cada versão do TeX Live que você instalou):

#%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

Se você tiver um desses arquivos de módulo para cada versão, poderá selecionar facilmente uma versão usando module load texlive/2023e reverter ao padrão com module remove texlive/2023. Novamente, para obter ajuda específica sobre como usar arquivos de módulo dessa maneira,unix&linux.SEé um bom lugar para pedir ajuda (depois de consultar as páginas de manual, é claro).

informação relacionada