Introduksjon til TeX Live fra kilden
Note
I følge https://www.tug.org/historic/
master nettstedet i Frankrike støtter bare ftp og rsync. Nå som
ftp generelt er utdatert, den siden har lenker til speil, hvorav
noen støtter https, f.eks. i Utah og Chemntiz samt i Kina. Hvis
du foretrekker å bruke et annet speil fra eksempelkoblingene her,
må du navigere til systems/historic/texlive/2023 eller
systems/texlive/2023 som tilfellet kan være.
Det meste av TeX Live kan bygges fra kilden uten en
forhåndseksisterende installasjon, men xindy (for indeksering) trenger en fungerende
versjon av latex og
pdflatex når
konfigurering kjøres, og testpakken og installere asy (for vektorgrafikk) vil
mislykkes hvis TeX ikke allerede er installert. I tillegg,
biber er ikke gitt innenfor
texlive kilden og versjonen av
dvisvgm i texlive treet kan ikke bygges hvis delte
systembiblioteker brukes.
Alle disse pakkene behandles på deres egne sider og kan bli bygget
etter installasjon av denne pakken. Hvis du ikke allerede har gjort
det, burde du starte med Sette PATH for TeX
Live slik at de siste kommandoene til å initialisere den nye
installasjonen vil bli funnet.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.1 plattform.
Pakkeinformasjon
Påkrevd Ytterligere Nedlastinger
Mye av texlive miljøet (inkludert skript, dokumentasjon, fonter og
diverse andre filer) er ikke en del av kilde tarballen. Du må laste
de ned separat. Dette vil gi deg alt av tilleggsfiler som leveres
av en full installasjon av binærfil versjonen, det er ingen
realistisk måte å begrense hvilke deler som blir installert.
På grunn av størrelsen på denne pakken er det usannsynlig at den
speiles av BLFS speil. I tilfelle problemer, gå til
http://www.ctan.org/mirrors/ for å finne et mer tilgjengelig speil.
Fra året 2019 er tlpdb databasen over pakkene i texlive ikke lenger
installert med kilden. Men texdoc trenger en cache-fil
avledet fra denne (og vil lage cachen på sin første kjøring).
TeX Live fra kilden Avhengigheter
Anbefalt
et grafiske miljø
Kilden leveres med sine egne versjoner av mange biblioteker, og vil bruke dem med
mindre den blir tvunget til å bruke systemversjoner. Følgende
anbefales slik at systemversjonen vil bli brukt: Cairo-1.18.0,
Fontconfig-2.15.0, FreeType-2.13.2, GC-8.2.6, Graphite2-1.3.14, HarfBuzz-8.3.0 (bygget med graphite2
aktivert), ICU-74.2, libpaper-2.1.3 (brukt av minst context og
xelatex), og libpng-1.6.42
Videre forutsetter instruksjonene nedenfor at du bruker oppsettet
beskrevet i Sette PATH for TeX Live.
Valgfri
Kilden leveres med egne versjoner av flere biblioteker som enten
ikke er under aktiv utvikling, eller kun brukt for begrenset
funksjonalitet. Hvis du installerer disse, som med noen andre
valgfrie avhengigheter i denne boken må fortelle configure til å bruke
systemversjonene. GD, t1lib, ZZIPlib,
TECkit
Kjøretids avhengigheter
Python-2.7.18 brukes av ikke-vedlikeholde ebong
CTAN modulen (ment for å skrive bengali i Rapid Roman Format).
/usr/bin/python
er også i shebang
linjen for lateks papirstørrelse og lilyglyphs skript, og
dokumentasjon hos CTAN sier begge moduler har blitt oppdatert for å
fungere med python3. I pythontex er det skript for å starte python3
eller python2 i henhold til systemets versjon av python. Ruby-3.3.0 brukes av
to skript, det ene er for pTex (japansk vertikal skrift) og det
andre er match_parens som kan være generelt nyttig. Perl modulen
Tk, som må kjøres fra en X11 økt for å kjøre testene og krever
Tk-8.6.13 brukes av et av skriptene for ptex og er
nødvendig for texdoctk (et GUI grensesnitt for å finne
dokumentasjonsfiler og åpne dem med riktig viser). ps2pdf, fra ghostscript-10.02.1, blir
brukt av noen verktøy og skript.
Installasjon av TeX Live
Installer TeX Live ved å kjøre følgende kommandoer:
Caution
Hvis du ønsker å oppgradere til gjeldende texlive på et eldre system hvor ekstrapakker
(asymptote, biber, dvisvgm, eller xindy) har blitt installert, må du installer
disse på nytt i tillegg til å fikse opp PATH
for $TEXLIVE_PREFIX
.
Note
En vellykket installasjon krever litt texlive kommandoer skal
kjøres som root bruker, så vi eksporterer TEXARCH variabel for å
la root
bruke det.
Nå, som en vanlig bruker:
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
For å teste resultatene, utsted: make
-k check. To tester, psutils.test
og eptexdir/wcfname.test
er kjent for å mislykkes.
Nå, som root
bruker:
make install-strip &&
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
Note
Bare kjør make
texlinks en gang. Hvis den kjøres på nytt, kan
den endre alle programsymlinkene slik at de peker til seg selv og
er ubrukelige.
Installer nå tilleggsfilene som root
bruker:
tar -xf ../../texlive-20230313-texmf.tar.xz -C $TEXLIVE_PREFIX --strip-components=1
Fortsatt som root
bruker,
initialiser det nye systemet (kommandoen fmtutil-sys --all vil produsere
masse utdata):
mktexlsr &&
fmtutil-sys --all
For å tillate Evince-45.0 or dvisvgm-3.2 å lenke til
libkpathsea.so
, som root
bruker (gjen)opprette en symbolkobling fra
/usr/lib
:
ln -svf $TEXLIVE_PREFIX/lib/libkpathsea.so{,.6} /usr/lib
Note
TeXLive inkluderer noen filer for ConTeXt, men kilden til det er
separert og har gått videre fra å bruke luatex i forrige 'mkiv'
versjon til å bruke luametatex som kan hentes med git fra
github
luametatex. LuaMetaTeX bruker meson og ninja, men det passer
ikke lett inn i BLFS oppsettet til TeXLive.
Men med litt ekstra arbeid kan 'mkiv' filer fortsatt behandles
ved å bruke filene som ble sendt i texmf.
Rettelser for å bruke ConTeXt vil bli
fjernet neste gang texlive kilden må oppdateres enten for en
sårbarhetsretting som krever tilbakeportering luatex endringer,
eller for TeXLive 2024. Hvis du er en BLFS bruker av ConTeXt bør
du være forberedt på å bruke den siste taggen fra github (lenken
er i første ledd i denne merknaden). Bygge og installere det for
å jobbe med en BLFS installasjon av TeXLive vil ikke være en
triviell øvelse.
Følgende trinn, kjør som root
bruker, vil opprette mtxrun og 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
Du kan nå gå videre til asymptote-2.86, biber-2.19, dvisvgm-3.2 og / eller
xindy-2.5.1 hvis du ønsker å installere dem.
Parameterforklaringer
patch -Np1 -i
../texlive-20230313-source-security_fix-1.patch:
dette oppdaterer luatex kilden til v1.17.0 for å fikse
sikkerhetsproblemer.
sed -e '/local template (...)'
(...)mtxrun.lua: dette gjør en endring i et
texmf-dist skript slik at ConTeXt nå kan kjøres med luatex-v1.17.0.
-C: opprette
config.cache, dette sparer betydelig tid i et parallellbygg.
--prefix=
, --bindir=
, --datarootdir=
, og andre “dir” brytere: disse
bryterne sørger for at filene installert fra kilden vil overskrive
alle tilsvarende filer som tidligere er installert av install-tl-unx slik at alternative metoder for
å installere texlive er
konsistente.
--includedir=
--libdir=
: disse bryterne sikrer at
bibliotekene og inkluderte filer vil være innenfor mappen for dette
års texlive.
--disable-static
: Denne
bryteren forhindrer installasjon av statiske versjoner av
bibliotekene.
--enable-shared
: Bruk delte
versjoner av libkpathsea
,
libptexenc
, libsynctex
, libtexlua52
og libtexluajit
.
--with-system-
...: Med
mindre denne parameteren brukes, vil de inkluderte versjonene av
disse bibliotekene bli statisk kompilert inn i programmene som
trenger dem. Hvis du bestemte deg for ikke å installere et anbefalt
bibliotek, utelat den tilsvarende bryteren.
--disable-dvisvgm:
Som nevnt ovenfor, den sendte versjonen av dvisvgm, som har
modifiserte konfigurasjonsfiler, kan ikke bygges med delte
systembiblioteker.
make texlinks : dette
kjører skriptet texlinks.sh for å lage symbolske lenker fra
formater til motorer. I praksis, flere av målene som f.eks
xetex er nå separate
binærfiler og for disse vil den rapportere "file already exists".
tar -xf texlive-20230313-texmf.tar.xz
-C $TEXLIVE_PREFIX --strip-components=1: tarballen
inneholder filene for texmf-dist mappen, og fordi dens størrelse
ønsker vi ikke å kaste bort tid og plass på å pakke den ut og
etterpå kopiere filene.
install -v -m644
../texk/tests/TeXLive/*
$TEXLIVE_PREFIX/tlpkg/TeXLive/: Dette setter perl
modulene TLConfig.pm
og TLUtils.pm
inn i mappen der det binære
installasjonsprogrammet plasserer dem - det er på starten av perl
@INC@ PATH i texlive når installert ved hjelp av ovenstående
konfigurasjons brytere. Uten disse modulene er texlive ubrukelig.
mkdir -pv
$TEXLIVE_PREFIX/texmf-var/luatex-cache/context/:
kontekstskriptet opprettet etter dette vil ikke kjøre riktig hvis
denne mappen ikke er til stede.
--without-x
: bruk dette hvis du ikke
har Xorg installert.
Det er mange andre "--disable" eller "--without" alternativer. Noen
av dem slik som --without-texinfo
blir
akseptert, men ikke lenger gjør noe, andre vil forhindre at et
program bygges - men desto større mengde plass brukt til de
relaterte elementene i texmf betyr at det ikke er noen åpenbar
fordel fra å deaktivere noen av programmene.
fmtutil-sys --all:
Dette initialiserer TeX formatene, Metafont baser og Metapost mems.
mtxrun --generate:
Dette initialiserer ConTeXt systemet.
Innhold
Installerte Programmer:
Over 300 binærfiler og symbolkoblinger
til skript
Installerte Biblioteker:
libkpathsea.so, libptexenc.so,
libsynctex.so, libtexlua52.so, libtexluajit.so
Installerte Mapper:
$TEXLIVE_PREFIX/bin,
$TEXLIVE_PREFIX/include, $TEXLIVE_PREFIX/lib,
$TEXLIVE_PREFIX/texmf-dist
Korte Beskrivelser
TeX programs
|
Programmene som inngår i TeX er for mange til å liste opp
hver for seg. Vennligst referer til det enkelte
programmets HTML og PDF sider i ulike html, man eller pdf
filer i undermappene til 2023/texmf-dist/ . Ved bruk av
texdoc
pdflatex ( erstatt pdflatex med kommandonavnet )
kan også være nyttig
|
libkpathsea.so
|
(kpathsearch) eksisterer for å slå opp en fil i en liste
over mapper og brukes av kpsewhich
|
libptexenc.so
|
er et bibliotek for japansk pTeX (publishing TeX)
|
libsynctex.so
|
er SyncTeX (Synchronize TeXnology) parserbibliotek
|
libtexlua52.so
|
gir Lua 5.2, modifisert for bruk med LuaTeX
|
libtexluajit.so
|
gir LuaJIT, modifisert for bruk med LuaJITTeX
|