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 outrosTEXDIR*
. 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.