texlive-20230313-source
Introdução ao TeX Live a partir do fonte
Nota
De acordo com https://www.tug.org/historic/
o site mestre na França suporta somente FTP e rsync. Agora que o
FTP está geralmente obsoleto, essa página tem links para
espelhos, alguns dos quais suportam HTTPS, por exemplo, em Utah e
Chemnitz, bem como na China. Se você preferir usar um espelho
diferente a partir dos links de exemplo aqui, você precisará
navegar até systems/historic/texlive/2023 ou systems/texlive/2023
conforme o caso.
A maior parte do TeX Live pode ser construída a partir do fonte sem
uma instalação pré existente, mas o xindy (para indexação) precisa de versões
funcionais de latex e
pdflatex quando o
configure for executado e a suíte de teste e a instalação do
asy (para gráficos
vetoriais) falharão se o TeX ainda não tiver sido instalado. Além
disso, biber não é fornecido no
fonte do texlive e a versão de
dvisvgm na árvore do texlive não pode ser construída se bibliotecas
de sistema compartilhadas forem usadas.
Todos esses pacotes são tratados em nas próprias páginas deles e
podem ser construídos depois de se instalar esse pacote. Se ainda
não tiver feito isso, você deveria iniciar em Configurando o PATH para TeX
Live, de forma que os comandos finais para inicializar a nova
instalação sejam encontrados.
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.0.
Informação do Pacote
Transferências Adicionais Exigidas
Grande parte do ambiente do texlive (incluindo conjuntos de
comandos sequenciais, documentação, fontes e vários outros
arquivos) não faz parte do tarball do fonte. Você precisa baixá-lo
separadamente. Isso te dará todos os arquivos adicionais fornecidos
por uma instalação completa da versão binária; não existe uma
maneira realista de restringir quais partes serão instaladas.
Devido ao tamanho desse pacote, é improvável que seja espelhado por
espelhos do BLFS. Em caso de dificuldade, vá até
http://www.ctan.org/mirrors/ para encontrar um espelho mais
acessível.
A partir do ano de 2019, a base de dados tlpdb dos pacotes do
texlive não mais é instalada com o fonte. Mas, o texdoc precisa de um arquivo de
cache derivado a partir desse (e criará o cache na primeira
execução dele).
Dependências do TeX Live a partir do fonte
Recomendadas
um ambiente gráfico
O fonte vem com as próprias versões dele de muitas bibliotecas, e as usará, a menos
que seja forçado a usar as versões do sistema. As seguintes são
recomendadas de forma que a versão do sistema seja usada: Cairo-1.17.6, Fontconfig-2.14.2, FreeType-2.13.1, GC-8.2.4, Graphite2-1.3.14, HarfBuzz-8.1.1 (construído com graphite2
habilitado), ICU-73.2, libpaper-2.1.1 (usado por, pelo menos, context
e xelatex) e libpng-1.6.40
Além disso, as instruções abaixo assumem que você está usando o
esquema descrito em Configurando o PATH para TeX
Live.
Opcionais
O fonte vem com as próprias versões dele de diversas bibliotecas,
as quais ou não estão em desenvolvimento ativo ou são usadas
somente para funcionalidades limitadas. Se você instalar essas,
como acontece com algumas outras dependências opcionais neste
livro, você precisará dizer ao configure para usar as versões do
sistema. GD,
t1lib, ZZIPlib,
TECkit
Dependências de tempo de execução
Python-2.7.18 é usado pelo módulo CTAN ebong
não mantido (destinado a escrever Bengali em formato Rapid Roman).
/usr/bin/python
também está na linha
shebang para os conjuntos de comandos sequenciais latex-papersize e
lilyglyphs, e a documentação no CTAN diz que ambos os módulos foram
atualizados para funcionar com python3. No pythontex existem
conjuntos de comandos sequenciais para invocar python3 ou python2
de acordo com a versão do sistema do python. Ruby-3.2.2 é usado
por dois conjuntos de comandos sequenciais, um é para pTex (escrita
vertical japonesa) e o outro é match_parens que pode geralmente ser
útil. O módulo perl
Tk, que precisa ser executado a partir de uma sessão do X11
para executar os testes e exige Tk-8.6.13, é usado por
um dos conjuntos de comandos sequenciais para ptex e é necessário
para texdoctk (uma interface GUI para localizar arquivos de
documentação e abri-los com o visualizador apropriado).
ps2pdf, proveniente
de ghostscript-10.01.2, é usado por alguns
utilitários e conjuntos de comandos sequenciais.
Instalação do TeX Live
Instale o TeX Live executando os seguintes comandos:
Cuidado
Se você desejar atualizar para o texlive atual em um sistema mais antigo,
onde pacotes extras (asymptote,
biber, dvisvgm ou xindy) tenham sido instalados, você
precisará reinstalá-los, bem como corrigir teu PATH
para $TEXLIVE_PREFIX
.
Nota
Uma instalação bem-sucedida requer que alguns comandos do texlive
sejam executados como o(a) usuário(a) root, de forma que nós
exportaremos a variável TEXARCH para permitir que o(a)
root
a use.
Agora, como um(a) usuário(a) normal:
export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') &&
patch -Np1 -i ../texlive-20230313-source-security_fix-1.patch &&
mkdir texlive-build &&
cd texlive-build &&
../configure -C \
--prefix=$TEXLIVE_PREFIX \
--bindir=$TEXLIVE_PREFIX/bin/$TEXARCH \
--datarootdir=$TEXLIVE_PREFIX \
--includedir=$TEXLIVE_PREFIX/include \
--infodir=$TEXLIVE_PREFIX/texmf-dist/doc/info \
--libdir=$TEXLIVE_PREFIX/lib \
--mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man \
--disable-native-texlive-build \
--disable-static --enable-shared \
--disable-dvisvgm \
--with-system-cairo \
--with-system-fontconfig \
--with-system-freetype2 \
--with-system-gmp \
--with-system-graphite2 \
--with-system-harfbuzz \
--with-system-icu \
--with-system-libgs \
--with-system-libpaper \
--with-system-libpng \
--with-system-mpfr \
--with-system-pixman \
--with-system-zlib \
--with-banner-add=" - BLFS" &&
make
Para testar os resultados, emita: make -k check. Dois testes,
psutils.test
e eptexdir/wcfname
são conhecidos por falharem.
Agora, como o(a) usuário(a) root
:
make install-strip &&
/sbin/ldconfig &&
make texlinks &&
mkdir -pv $TEXLIVE_PREFIX/tlpkg/TeXLive/ &&
install -v -m644 ../texk/tests/TeXLive/* $TEXLIVE_PREFIX/tlpkg/TeXLive/ &&
tar -xf ../../texlive-20230311-tlpdb-full.tar.gz -C $TEXLIVE_PREFIX/tlpkg
Nota
Execute make
texlinks somente uma vez. Se for executado
novamente, poderá mudar todos os links simbólicos do aplicativo,
de forma que eles apontem para eles mesmos e sejam inúteis.
Agora instale os arquivos adicionais como o(a) usuário(a)
root
:
tar -xf ../../texlive-20230313-texmf.tar.xz -C $TEXLIVE_PREFIX --strip-components=1
Foi estabelecido pelo Debian que os conjuntos de comandos
sequenciais do python
em latex-make
funcionarão com o
python3, de forma que
atualize-os para invocar isso executando o seguinte comando como
o(a) usuário(a) root
:
for F in $TEXLIVE_PREFIX/texmf-dist/scripts/latex-make/*.py ; do
sed -i 's%/usr/bin/env python%/usr/bin/python3%' $F
done
Ainda como o(a) usuário(a) root
,
inicialize o novo sistema (o comando fmtutil-sys --all produzirá um
monte de saída gerada):
mktexlsr &&
fmtutil-sys --all
Para permitir que o Evince-44.3, ou o dvisvgm-3.1, se vincule a
libkpathsea.so
, como o(a) usuário(a)
root
, (re)crie um link simbólico a
partir de /usr/lib
:
ln -svf $TEXLIVE_PREFIX/lib/libkpathsea.so /usr/lib
Nota
TeXLive inclui alguns arquivos para ConTeXt, mas o fonte deles é
separado e passou do uso de luatex na versão 'mkiv' anterior para
o uso de luametatex, que pode ser extraído com git a partir de
luametatex do
github. LuaMetaTeX usa meson e ninja, mas não se encaixa
facilmente no esquema do BLFS do TeXLive.
Entretanto, com um pouco de trabalho extra, os arquivos 'mkiv'
ainda podem ser processados usando os arquivos enviados no texmf.
As correções para usar o ConTeXt serão
removidas quando o fonte do texlive tiver que ser atualizado para
uma correção de vulnerabilidade que exija backporting das
mudanças do luatex ou para o TeXLive 2024. Se você for um(a)
usuário(a) BLFS do ConTeXt, você deveria estar preparado(a) para
usar a etiqueta mais recente a partir do GitHub (o link está no
primeiro parágrafo desta Observação). Construir e instalar isso
para funcionar com uma instalação BLFS do TeXLive não será um
exercício trivial.
As seguintes etapas, executadas como o(a) usuário(a) root
, criarão mtxrun e context.
sed -e '/local template=\[\[--ini/s/\(primaryflags%\)\(.*\)/\1 --socket --shell-escape \2/' \
-e '/local template=\[\[%primaryflags%/s/\(primaryflags%\)\(.*\)/\1 --socket --shell-escape \2/' \
-i $TEXLIVE_PREFIX/texmf-dist/scripts/context/lua/mtxrun.lua &&
mkdir -pv $TEXLIVE_PREFIX/texmf-var/luatex-cache/context/ &&
ln -sfv /$TEXLIVE_PREFIX/texmf-dist/scripts/context/lua/mtxrun.lua \
/$TEXLIVE_PREFIX/bin/$TEXARCH/mtxrun &&
cat > $TEXLIVE_PREFIX/bin/$TEXARCH/context << EOF
#!/bin/sh
export TEXMF=$TEXLIVE_PREFIX/texmf-dist;
export TEXMFCNF=$TEXLIVE_PREFIX/texmf-dist/web2c;
export TEXMFCACHE=$TEXLIVE_PREFIX/texmf-var/luatex-cache/context/;
$TEXLIVE_PREFIX/bin/$TEXARCH/mtxrun --script context "\$@"
EOF
chmod -v 0755 $TEXLIVE_PREFIX/bin/$TEXARCH/context
Agora você pode prosseguir para asymptote-2.86,
biber-2.19, dvisvgm-3.1 e (ou) xindy-2.5.1 se desejar
instalá-los.
Explicações do Comando
patch -Np1 -i
../texlive-20230313-source-security_fix-1.patch:
isso atualiza o fonte do luatex para v1.17.0 para corrigir
problemas de segurança.
sed -e '/local template (...)'
(...)mtxrun.lua: isso faz uma mudança em um
conjunto de comandos sequenciais do texmf-dist, de forma que o
ConTeXt agora consiga executar com o luatex-v1.17.0.
-C: cria
config.cache; isso economiza tempo significativo em uma construção
paralela.
--prefix=, --bindir=, --datarootdir=,
--infodir=, --mandir= ...
: essas chaves asseguram que
os arquivos instalados a partir do fonte sobrescreverão quaisquer
arquivos correspondentes previamente instalados por install-tl-unx, de forma que os métodos
alternativos de se instalar o texlive sejam consistentes.
--includedir=, --libdir=
...
: essas chaves garantem que as bibliotecas e os
arquivos de inclusão estarão dentro dos diretórios do texlive deste
ano.
--disable-static
: Essa
chave impede a instalação das versões estáticas das bibliotecas.
--enable-shared
: Use
versões compartilhadas de libkpathsea
, libptexenc
, libsynctex
, libtexlua52
e libtexluajit
.
--with-system-...
: A menos
que esse parâmetro seja usado, as versões incluídas dessas
bibliotecas serão compiladas estaticamente nos aplicativos que
necessitarem delas. Se você decidiu não instalar uma biblioteca
recomendada, omita a chave correspondente.
--disable-dvisvgm:
Conforme observado acima, a versão enviada do dvisvgm, que tem
arquivos modificados de configuração, não pode ser construída com
bibliotecas de sistema compartilhadas.
/sbin/ldconfig: isso
tem que ser executado aqui, de forma que make texlinks possa usar
kpsewhich.
make texlinks : isso
executa o conjunto de comandos sequenciais texlinks.sh para criar
links simbólicos de formats para engines. Na prática, vários dos
alvos, como o xetex,
agora são binários separados e para esses ele informará "file
already exists".
tar -xf texlive-20230313-texmf.tar.xz
-C $TEXLIVE_PREFIX --strip-components=1: o tarball
contém os arquivos para o diretório texmf-dist e, devido ao tamanho
dele, nós não queremos desperdiçar tempo e espaço desempacotando-o
e depois copiando os arquivos.
install -v -m644
../texk/tests/TeXLive/*
$TEXLIVE_PREFIX/tlpkg/TeXLive/: Isso coloca os
módulos do Perl TLConfig.pm
e
TLUtils.pm
no diretório onde o
instalador do binário os coloca - está no início do PATH @INC@ do
Perl dentro do texlive quando instalado usando as chaves de
configuração acima. Sem esses módulos, o texlive não é usável.
mktexlsr: Crie um
arquivo ls-R
que lista o que foi
instalado - isso é usado pelo kpathsea para encontrar arquivos.
fmtutil-sys --all:
Isso inicializa os formatos do TeX, bases Metafont e memorandos
Metapost.
mkdir -pv
$TEXLIVE_PREFIX/texmf-var/luatex-cache/context/: o
conjunto de comandos sequenciais de contexto criado depois disso
não executará corretamente se esse diretório não estiver presente.
--without-x
: use isso se você não tiver
o Xorg instalado.
Existem muitas outras opções '--disable' ou '--without'. Algumas
delas, como --without-texinfo
, são
aceitas, mas não mais fazem nada; outras impedirão um aplicativo de
ser construído - mas a quantidade muito maior de espaço usado para
os itens relacionados no texmf significa que não existe nenhum
benefício óbvio em desabilitar alguns dos aplicativos.
Conteúdo
Aplicativos Instalados:
Mais que trezentos (300) binários e links
simbólicos para conjuntos de comandos sequenciais
Bibliotecas Instaladas:
libkpathsea.so, libptexenc.so,
libsynctex.so, libtexlua52.so, libtexluajit.so
Diretórios Instalados:
$TEXLIVE_PREFIX/bin,
$TEXLIVE_PREFIX/include, $TEXLIVE_PREFIX/lib,
$TEXLIVE_PREFIX/texmf-dist
Descrições Curtas
TeXprograms
|
Os aplicativos incluídos no TeX são numerosos demais para se
listar individualmente. Por favor, consulte as páginas
HTML e PDF do programa individual nos vários arquivos
html, man ou pdf nos subdiretórios de 2023/texmf-dist/ . Usar texdoc pdflatex
(substitua pdflatex pelo nome do comando)
também possivelmente seja útil
|
libkpathsea.so
|
(kpathsearch) existe para procurar um arquivo em uma
lista de diretórios e é usado pelo kpsewhich
|
libptexenc.so
|
é uma biblioteca para pTeX japonês (publicação de TeX)
|
libsynctex.so
|
é a biblioteca do analisador SyncTeX (Synchronize
TeXnology)
|
libtexlua52.so
|
fornece Lua 5.2, modificado para uso com o LuaTeX
|
libtexluajit.so
|
fornece LuaJIT, modificado para uso com o LuaJITTeX
|