texlive-20230313-source

Introduksjon til TeX Live fra kilden

[Note]

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

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

Installasjon av TeX Live

Installer TeX Live ved å kjøre følgende kommandoer:

[Caution]

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]

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]

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]

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