Instale o texlive nativo em paralelo à versão repo

3

Ainda estou executando o Ubuntu 12.04 e gostaria de instalar manualmente o texlive mais recente. Um dos primeiros passos para a instalação manual é livrar-se das instalações existentes do texlive. No entanto, quero manter minha instalação texlive padrão dos repositórios do Ubuntu, já que tenho um grande número de documentos LaTeX, que às vezes podem depender de modificações específicas da versão.

Portanto, minha pergunta é como usar uma instalação texlive nativa (ou múltipla possível) em paralelo à instalação dos repositórios do Ubuntu? Quais etapas da instalação manual mudam para contabilizar uma instalação existente? E como eu digo ao meu sistema qual distribuição texlive eu quero usar?

Acho que responder a essa pergunta provavelmente responderá todas as minhas perguntas relacionadas, como por exemplo: A distribuição atual é determinada apenas pelos executáveis que estão atualmente no PATH ? E se sim, como posso alternar rapidamente entre as distribuições? Parece que os binários texlive em /usr/bin não são links simbólicos, mas binários reais, então não tenho certeza de como posso ocultar sua existência sem excluí-los. E o que também pode ser um desafio: Como posso descobrir todos os binários que pertencem a uma distribuição texlive (pdftex, pdflatex, luatex, xetex, ...)? A alteração da distribuição afetará automaticamente os sistemas / editores de criação (como rubber / latexmk / eclipse / gedit), ou será necessário fazer alterações manuais a cada vez?

    
por bluenote10 17.03.2014 / 13:16

1 resposta

2

Aviso: Encontrei uma solução e parece funcionar bem.

Atualização: Agora posso confirmar que o procedimento abaixo funciona também com o Texlive 2015.

Em geral, parece que trabalhar com instalações paralelas é mais fácil do que o esperado. Para configurar a versão nativa, fiz o seguinte:

  • Faça o download do instalador da rede e extraia-o em um local temporário (o instalador da rede é uma ferramenta de linha de comando interativa, permitindo modificar várias configurações durante a configuração).

  • Execute o modo portátil do instalador, por exemplo, install-tl -portable . Isso abrirá o menu principal do instalador.

  • Neste menu de configuração, eu simplesmente alterei o TEXDIR (pressionando D ) para um caminho dentro da minha casa, por exemplo, ~/bin/texlive . Isso também altera automaticamente os outros TEXDIR* . Eu não mudei mais nada (o esquema de instalação foi definido como esquema completo). No geral, a instalação com o instalador de rede é muito conveniente.

Inspirado na seção de documentação "Variáveis de ambiente para Unix" Eu criei um arquivo setenv.sh no diretório de instalação com o seguinte conteúdo:

dir='cd \'dirname $0\' && pwd'
export PATH="$dir/bin/x86_64-linux:$PATH"
export MANPATH="$dir/texmf-dist/doc/man:$MANPATH"
export INFOPATH="$dir/texmf-dist/doc/info:$INFOPATH"

Para mudar para a nova distribuição texlive eu simplesmente source deste arquivo. Até agora, parece que tudo está funcionando bem com a distribuição existente e a nova texlive.

Parece que o Kpathsea é a ferramenta no texlive que é responsável por localizar as diferentes partes / diretórios da distribuição ( Pesquisa de caminho do Kpathsea ). Eu escrevi o seguinte script para verificar se a mudança para a nova distribuição realmente muda todos os diretórios TEXMF* :

echo "which kpsexpand: 'which kpsexpand'"
echo "TEXMFDIST:       'kpsexpand '$TEXMFDIST''"
echo "TEXMFLOCAL:      'kpsexpand '$TEXMFLOCAL''"
echo "TEXMFHOME:       'kpsexpand '$TEXMFHOME''"
echo "TEXMFCONFIG:     'kpsexpand '$TEXMFCONFIG''"
echo "TEXMFSYSCONFIG:  'kpsexpand '$TEXMFSYSCONFIG''"
echo "TEXMFVAR:        'kpsexpand '$TEXMFVAR''"
echo "TEXMFSYSVAR:     'kpsexpand '$TEXMFSYSVAR''"
echo "TEXMFCACHE:      'kpsexpand '$TEXMFCACHE''"

Executar isso sem obter o arquivo setenv.sh fornece a seguinte saída:

which kpsexpand: /usr/bin/kpsexpand
TEXMFDIST:       /usr/share/texmf-texlive
TEXMFLOCAL:      /usr/local/share/texmf
TEXMFHOME:       /home/bluenote/texmf
TEXMFCONFIG:     /home/bluenote/.texmf-config
TEXMFSYSCONFIG:  /etc/texmf
TEXMFVAR:        /home/bluenote/.texmf-var
TEXMFSYSVAR:     /var/lib/texmf
TEXMFCACHE:      $TEXMFCACHE

Isso mostra que o texlive padrão dos repositórios do Ubuntu está em uso. Após o fornecimento, a saída se torna:

which kpsexpand: /home/bluenote/bin/texlive/2013/bin/x86_64-linux/kpsexpand
TEXMFDIST:       /home/bluenote/bin/texlive/2013/texmf-dist
TEXMFLOCAL:      /home/bluenote/bin/texlive/2013/../texmf-local
TEXMFHOME:       /home/bluenote/bin/texlive/2013/../texmf-local
TEXMFCONFIG:     /home/bluenote/bin/texlive/2013/texmf-config
TEXMFSYSCONFIG:  /home/bluenote/bin/texlive/2013/texmf-config
TEXMFVAR:        /home/bluenote/bin/texlive/2013/texmf-var
TEXMFSYSVAR:     /home/bluenote/bin/texlive/2013/texmf-var
TEXMFCACHE:      /home/bluenote/bin/texlive/2013/texmf-var:/home/bluenote/bin/texlive/2013/texmf-var

Eu não entendo completamente porque usar um binário diferente faz com que todos eles "variáveis tex" para alterar também. Eu estava esperando que o binário não tenha informações de que faz parte de uma distribuição diferente, mas felizmente tem! Observe que essas "variáveis tex" não são variáveis de ambiente semelhantes a unix (é por isso que é importante usar aspas simples ao passá-las para kpsexpand ). Estou um pouco surpreso por não ter modificado nenhum deles via export - na verdade, eles são todos indefinidos. Mas até agora tudo parece estar funcionando.

    
por bluenote10 18.03.2014 / 18:11