source: pst/typesetting/texlive.xml@ 09a2590

10.0 10.1 11.0 ken/refactor-virt lazarus qt5new trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 09a2590 was 09a2590, checked in by Xi Ruoyao <xry111@…>, 15 months ago

texlive: fix the instruction to use system poppler-20.08

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@23508 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 21.1 KB
Line 
1<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
2 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
3 <!ENTITY % general-entities SYSTEM "../../general.ent">
4 %general-entities;
5
6 <!ENTITY texlive-download-http " ">
7 <!ENTITY texlive-download-ftp "ftp://tug.org/texlive/historic/&texlive-year;/texlive-&texlive-version;-source.tar.xz">
8 <!ENTITY texlive-md5sum "a5d992e3cb8554ce92c55adde03958ba">
9 <!ENTITY texlive-size "53 MB">
10
11 <!ENTITY texlive-buildsize "8.5 GB including the additional download and the tests, 6.4 GB installed">
12 <!ENTITY texlive-time "5.8 SBU including the additional download and the tests, building with parallelism=4">
13
14 <!ENTITY texlive-texmf-download-http " ">
15 <!ENTITY texlive-texmf-download-ftp "ftp://tug.org/texlive/historic/&texlive-year;/texlive-&texmf-version;-texmf.tar.xz">
16 <!ENTITY texlive-texmf-md5sum "bca40df2ff11269fbcb2d1b4ff0278b1">
17 <!ENTITY texlive-texmf-size "3.0 GB">
18
19 <!ENTITY texlive-tlpdb-download-http " ">
20 <!ENTITY texlive-tlpdb-download-ftp "ftp://tug.org/texlive/historic/&texlive-year;/texlive-&tex-tlpdb-version;-tlpdb-full.tar.gz">
21 <!ENTITY texlive-tlpdb-md5sum "d8cd997c1bba422b30c9bc225e508794">
22 <!ENTITY texlive-tlpdb-size "2.9 MB">
23
24]>
25
26
27<sect1 id="texlive" xreflabel="texlive-&texlive-version;">
28 <?dbhtml filename="texlive.html"?>
29
30 <sect1info>
31 <othername>$LastChangedBy$</othername>
32 <date>$Date$</date>
33 </sect1info>
34
35 <title>texlive-&texlive-version;-source</title>
36
37 <indexterm zone="texlive">
38 <primary sortas="a-texlive">texlive</primary>
39 </indexterm>
40
41 <sect2 role="package">
42 <title>Introduction to TeX Live from source</title>
43
44 <para>
45 Most of TeX Live can be built from source without a pre-existing
46 installation, but <application>xindy</application> (for indexing) needs
47 working versions of <command>latex</command> and
48 <command>pdflatex</command> when configure is run, and the testsuite
49 and install for <command>asy</command> (for vector graphics) will fail
50 if TeX has not already been installed. Additionally,
51 <application>biber</application> is not provided within the
52 <application>texlive</application> source and the version of
53 <application>dvisvgm</application> in the
54 <application>texlive</application> tree cannot be built
55 if shared system libraries are used.
56 </para>
57
58 <para>
59 </para>
60 <para>
61 All of those packages are dealt with on their own pages and can be
62 built after installing this package. If you have not already done so, you
63 should start at <xref linkend="tex-path"/> so that the final commands to
64 initialise the new installation will be found.
65 </para>
66
67 &lfs91_checked;
68
69 <bridgehead renderas="sect3">Package Information</bridgehead>
70 <itemizedlist spacing="compact">
71 <listitem>
72 <para>
73 Download (HTTP): <ulink url="&texlive-download-http;"/>
74 </para>
75 </listitem>
76 <listitem>
77 <para>
78 Download (FTP): <ulink url="&texlive-download-ftp;"/>
79 </para>
80 </listitem>
81 <listitem>
82 <para>
83 Download MD5 sum: &texlive-md5sum;
84 </para>
85 </listitem>
86 <listitem>
87 <para>
88 Download size: &texlive-size;
89 </para>
90 </listitem>
91 <listitem>
92 <para>
93 Estimated disk space required: &texlive-buildsize;
94 </para>
95 </listitem>
96 <listitem>
97 <para>
98 Estimated build time: &texlive-time;
99 </para>
100 </listitem>
101 </itemizedlist>
102
103 <bridgehead renderas="sect3">Required Additional Downloads</bridgehead>
104
105 <para>
106 Much of the texlive environment (including scripts, documentation,
107 fonts, and various other files) is not part of the source tarball.
108 You must download it separately. This will give you all of the
109 additional files which are provided by a full install of the binary
110 version, there is no realistic way to restrict which parts get
111 installed.
112 </para>
113
114 <para>
115 Because of the size of this package, it is unlikely to be mirrored by
116 BLFS mirrors. In case of difficulty, go to http://www.ctan.org/mirrors/
117 to find a more-accessible mirror.
118 </para>
119
120 <itemizedlist spacing="compact">
121 <listitem>
122 <para>
123 Download (HTTP): <ulink url="&texlive-texmf-download-http;"/>
124 </para>
125 </listitem>
126 <listitem>
127 <para>
128 Download (FTP): <ulink url="&texlive-texmf-download-ftp;"/>
129 </para>
130 </listitem>
131 <listitem>
132 <para>
133 Download MD5 sum: &texlive-texmf-md5sum;
134 </para>
135 </listitem>
136 <listitem>
137 <para>
138 Download size: &texlive-texmf-size;
139 </para>
140 </listitem>
141 </itemizedlist>
142
143 <para>
144 From the 2019 year, the tlpdb database of the packages within texlive is
145 no-longer installed with the source. But <command>texdoc</command> needs
146 a cache file derived from this (and will create the cache on its first
147 run).
148 </para>
149
150 <itemizedlist spacing="compact">
151 <listitem>
152 <para>
153 Download (HTTP): <ulink url="&texlive-tlpdb-download-http;"/>
154 </para>
155 </listitem>
156 <listitem>
157 <para>
158 Download (FTP): <ulink url="&texlive-tlpdb-download-ftp;"/>
159 </para>
160 </listitem>
161 <listitem>
162 <para>
163 Download MD5 sum: &texlive-tlpdb-md5sum;
164 </para>
165 </listitem>
166 <listitem>
167 <para>
168 Download size: &texlive-tlpdb-size;
169 </para>
170 </listitem>
171
172<!-- <listitem>
173 <para>
174 Required patch: <ulink url=
175 "&patch-root;/texlive-&texlive-version;-source-upstream_fixes-1.patch"/>
176 </para>
177 </listitem>-->
178 </itemizedlist>
179
180 <bridgehead renderas="sect3">TeX Live from source Dependencies</bridgehead>
181
182 <bridgehead renderas="sect4">Recommended</bridgehead>
183 <para role="recommended">
184 <xref linkend="gs"/> <emphasis>including
185 <filename>libgs.so</filename></emphasis>, <!--(for dvisvgm, which is used by e.g.
186 <xref role="nodep" linkend="asymptote"/>); still referenced for dynamic loading,
187 even without dvisvgm - e.fg. by dvipsk -->
188 <xref linkend="x-window-system"/>
189 </para>
190
191 <!-- text for recommended libraries -->
192 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
193 href="../../xincludes/texrecommendlibs.xml"/>
194
195<!-- the following ensures jhalfs will set paths before running texlive -->
196
197 <para role="recommended">
198 Furthermore, the instructions below assume you are using the layout
199 described in <xref linkend="tex-path"/>.
200 </para>
201
202 <bridgehead renderas="sect4">Optional</bridgehead>
203 <!-- text for optional deps -->
204 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
205 href="../../xincludes/texoptional.xml"/>
206
207 <bridgehead renderas="sect4">Runtime dependencies</bridgehead>
208 <!-- text for runtime deps, shared with tl-installer -->
209 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
210 href="../../xincludes/texruntime.xml"/>
211
212 <para condition="html" role="usernotes">User Notes:
213 <ulink url="&blfs-wiki;/texlive"/></para>
214
215 </sect2>
216
217 <sect2 role="installation">
218 <title>Installation of TeX Live</title>
219
220 <para>
221 Install TeX Live by running the following commands:
222 </para>
223
224 <caution>
225 <para>
226 The instructions here for dealing with <application>poppler</application>
227 will only work with versions of poppler used in BLFS-9.1 and later, i.e.
228 poppler &gt;= 0.83.0. If you wish to upgrade an older system, there
229 are versions of <filename>pdftoepdf{,-poppler*}.cc</filename> and
230 <filename>pdftosrc{,-newpoppler,-poppler*}.cc</filename> in <filename
231 class="directory">texk/web2c/pdftexdir</filename>. You should establish
232 which version of <application>poppler</application> is installed and use
233 the appropriate versions of these files.
234 </para>
235
236 <para>
237 Similarly, if you wish to upgrade to current <application>texlive</application>
238 on an older system where extra packages (<application>asymptote</application>.
239 <application>biber</application>, <application>dvisvgm</application> or
240 <application>xindy</application>) have been installed, you will need to
241 reinstall those as well as fixing up your <literal>PATH</literal> for
242 <literal>/opt/texlive/&texlive-year;</literal>.
243 </para>
244 </caution>
245
246 <para>
247 The shared libraries will be installed into a texlive directory.
248 As the <systemitem class="username">root</systemitem> user, add it to
249 your <filename>/etc/ld.so.conf</filename>:
250 </para>
251
252<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
253<literal># Begin texlive &texlive-year; addition
254
255/opt/texlive/&texlive-year;/lib
256
257# End texlive &texlive-year; addition</literal>
258EOF</userinput></screen>
259
260 <para>
261 <application>TexLive</application> ships with a very old version of
262 <application>poppler</application>, and some updated files for newer versions.
263 To use the system version, first identify it and then copy the correct
264 versions of the updated files (please read the Caution above):
265 </para>
266
267<!-- on a release, drop this back to current version but update the
268 Caution above and ideally keep this commented, every other (expletive
269 deleted) poppler update tends to break this. -->
270<screen><userinput>SYSPOP= &amp;&amp;
271let MYPOPPLER_MAJOR=$(pkg-config --modversion poppler | cut -d '.' -f1)
272let MYPOPPLER_MINOR=$(pkg-config --modversion poppler | cut -d '.' -f2)
273if [ "$MYPOPPLER_MAJOR" -eq 0 ] &amp;&amp; [ "$MYPOPPLER_MINOR" -lt 85 ]; then
274 # BLFS-9.1 uses 0.85.0, ignore earlier versions in this script.
275 SYSPOP=
276else
277 SYSPOP="--with-system-poppler --with-system-xpdf"
278 if [ "$MYPOPPLER_MAJOR" -eq 0 ] &amp;&amp; [ "$MYPOPPLER_MINOR" -lt 86 ]; then
279 mv -v texk/web2c/pdftexdir/pdftoepdf{-poppler0.83.0,}.cc
280 else # 0.86.0 or later, including 20.08.0.
281 mv -v texk/web2c/pdftexdir/pdftoepdf{-poppler0.86.0,}.cc
282 fi
283 # For pdftosrc BLFS-9.1 uses 0.83.0 and that is the latest variant.
284 mv -v texk/web2c/pdftexdir/pdftosrc{-poppler0.83.0,}.cc
285fi &amp;&amp;
286export SYSPOP &amp;&amp;
287unset MYPOPPLER_{MAJOR,MINOR}</userinput></screen>
288
289 <note>
290 <para>
291 A successful install requires some texlive
292 commands to be run as the root user, so we will export the TEXARCH
293 variable to let <systemitem class="username">root</systemitem> use it.
294 </para>
295 </note>
296
297 <para>
298 Now, as a normal user:
299 </para>
300<!-- after the export!
301patch -Np1 -i ../texlive-&texlive-version;-source-upstream_fixes-1.patch &amp;&amp;-->
302<screen><userinput>export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') &amp;&amp;
303
304mkdir texlive-build &amp;&amp;
305cd texlive-build &amp;&amp;
306
307../configure \
308 --prefix=/opt/texlive/&texlive-year; \
309 --bindir=/opt/texlive/&texlive-year;/bin/$TEXARCH \
310 --datarootdir=/opt/texlive/&texlive-year; \
311 --includedir=/opt/texlive/&texlive-year;/include \
312 --infodir=/opt/texlive/&texlive-year;/texmf-dist/doc/info \
313 --libdir=/opt/texlive/&texlive-year;/lib \
314 --mandir=/opt/texlive/&texlive-year;/texmf-dist/doc/man \
315 --disable-native-texlive-build \
316 --disable-static --enable-shared \
317 --disable-dvisvgm \
318 --with-system-cairo \
319 --with-system-fontconfig \
320 --with-system-freetype2 \
321 --with-system-gmp \
322 --with-system-graphite2 \
323 --with-system-harfbuzz \
324 --with-system-icu \
325 --with-system-libgs \
326 --with-system-libpaper \
327 --with-system-libpng \
328 --with-system-mpfr \
329 --with-system-pixman \
330 ${SYSPOP} \
331 --with-system-zlib \
332 --with-banner-add=" - BLFS" &amp;&amp;
333
334make &amp;&amp;
335unset SYSPOP</userinput></screen>
336
337 <para>
338 To test the results, issue: <command>make -k check</command>.
339 One of the Kpathsea tests will fail because BLFS uses system
340 libraries.
341 <!-- https://tug.org/pipermail/tex-k/2019-August/003036.html -->
342 </para>
343
344 <para>
345 Now, as the <systemitem class="username">root</systemitem> user:
346 </para>
347
348<!-- Editors, you can run 'make texlinks' in a DESTDIR by passing
349DESTDIR#some/where -->
350<screen role="root"><userinput>make install-strip &amp;&amp;
351/sbin/ldconfig &amp;&amp;
352make texlinks &amp;&amp;
353mkdir -pv /opt/texlive/&texlive-year;/tlpkg/TeXLive/ &amp;&amp;
354install -v -m644 ../texk/tests/TeXLive/* /opt/texlive/&texlive-year;/tlpkg/TeXLive/ &amp;&amp;
355tar -xf ../../texlive-&tex-tlpdb-version;-tlpdb-full.tar.gz -C /opt/texlive/&texlive-year;/tlpkg</userinput></screen>
356
357 <note>
358 <para>
359 Only run <command>make texlinks</command> once. If it is rerun,
360 it can change all the program symlinks so that they point to
361 themselves and are useless.
362 </para>
363 </note>
364
365 <para>
366 Now install the additional files as the
367 <systemitem class="username">root</systemitem> user:
368 </para>
369
370<!-- if texmf does not need to be patched, remove &amp;&amp; from first line,
371 close userinput, screen, comment pushd, patch, popd -->
372<screen role="root"><userinput>tar -xf ../../texlive-&texmf-version;-texmf.tar.xz -C /opt/texlive/&texlive-year; --strip-components=1</userinput></screen>
373
374 <para>
375 Still as the <systemitem class="username">root</systemitem> user,
376 initialise the new system (the commands <command>fmtutil-sys
377 --all</command> and <command>mtxrun --generate</command> will produce
378 a <emphasis>lot</emphasis> of output):
379 </para>
380
381<!-- Editors, fmtutil-sys and mtxrun \-\-generate can apparently only be run on
382a real install, as root. But mktexlsr can be run in a DESTDIR with
383cd /YOUR/TEXMF/ROOT ; ls -LAR ./ >ls-R -->
384
385<screen role="root"><userinput>mktexlsr &amp;&amp;
386fmtutil-sys --all &amp;&amp;
387mtxrun --generate</userinput></screen>
388
389 <para>
390 You can now proceed to <xref linkend="asymptote"/>,
391 <xref linkend="biber"/>, <xref linkend="dvisvgm"/> and / or <xref
392 linkend="xindy"/> if you wish to install them.
393 </para>
394
395 </sect2>
396
397 <sect2 role="commands">
398 <title>Command Explanations</title>
399
400<!--<para>
401 <command>patch -Np1 -i ../texlive-&texlive-version;-source-upstream_fixes-1.patch</command>:
402 various problems have come to light since the shipped source was frozen to
403 be committed to DVDs.
404 </para>-->
405
406 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
407 href="../../xincludes/tex-prefix.xml"/>
408
409 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
410 href="../../xincludes/tex-lib.xml"/>
411
412 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
413 href="../../xincludes/static-libraries.xml"/>
414
415 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
416 href="../../xincludes/tex-shared.xml"/>
417
418 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
419 href="../../xincludes/tex-system.xml"/>
420<!--
421 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
422 href="../../xincludes/tex-xpdf.xml"/>-->
423
424 <para>
425 <command>--disable-dvisvgm</command>: As noted above, the shipped version
426 of dvisvgm, which has modified configuration files, cannot be built with
427 shared system libraries.
428 </para>
429
430 <para>
431 <option>--without-x</option>: use this if you do not have Xorg installed.
432 </para>
433
434 <para>
435 <command>/sbin/ldconfig</command>: this has to be run here so that
436 <command>make texlinks</command> can use kpsewhich.
437 </para>
438
439 <para>
440 <command>make texlinks</command> : this runs the texlinks.sh script
441 to create symbolic links from formats to engines. In
442 practice, several of the targets such as <command>xetex</command> are now
443 separate binaries and for these it will report "file already exists".
444 </para>
445
446 <para>
447 <command>tar -xf texlive-&texmf-version;-texmf.tar.xz -C /opt/texlive/&texlive-year; --strip-components=1</command>:
448 the tarball contains the files for the texmf-dist directory, and because
449 of its size we do not want to waste time and space untarring it and then
450 copying the files.
451 </para>
452
453 <para>
454 <command>install -v -m644 ../texk/tests/TeXLive/*
455 /opt/texlive/&texlive-year;/tlpkg/TeXLive/</command>: This puts the perl
456 modules <filename>TLConfig.pm</filename> and <filename>TLUtils.pm</filename>
457 into the directory where the binary installer puts them - it is at the
458 start of the perl @INC@ PATH within texlive when installed using the above
459 configure switches. Without these modules, texlive is unusable.
460 </para>
461
462 <para>
463 <command>mktexlsr</command>: Create an <filename>ls-R</filename> file
464 which lists what was installed - this is used by kpathsea to find files.
465 </para>
466
467 <para>
468 <command>fmtutil-sys --all</command>: This initializes the TeX formats,
469 Metafont bases and Metapost mems.
470 </para>
471
472 <para>
473 <command>mtxrun --generate</command>: This initializes the ConTeXt system.
474 </para>
475
476 </sect2>
477
478 <sect2 role="content">
479 <title>Contents</title>
480
481 <segmentedlist>
482 <segtitle>Installed Programs</segtitle>
483 <segtitle>Installed Libraries</segtitle>
484 <segtitle>Installed Directories</segtitle>
485
486 <seglistitem>
487 <seg>Over 300 binaries and symlinks to scripts</seg>
488 <seg>libkpathsea.so, libptexenc.so, libsynctex.so, libtexlua52.so,
489 libtexluajit.so</seg>
490 <seg>/opt/texlive/&texlive-year;/bin, /opt/texlive/&texlive-year;/include,
491 /opt/texlive/&texlive-year;/lib, /opt/texlive/&texlive-year;/texmf-dist</seg>
492 </seglistitem>
493 </segmentedlist>
494
495 <variablelist>
496 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
497 <?dbfo list-presentation="list"?>
498 <?dbhtml list-presentation="table"?>
499
500 <varlistentry id="texlive-programs">
501 <term><command>TeX&nbsp;programs</command></term>
502 <listitem>
503 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
504 href="../../xincludes/texprogs.xml"/>
505 <indexterm zone="texlive texlive-programs">
506 <primary sortas="b-texlive-programs">TeX Live programs</primary>
507 </indexterm>
508 </listitem>
509 </varlistentry>
510
511 <varlistentry id="libkpathsea">
512 <term><filename class="libraryfile">libkpathsea.so</filename></term>
513 <listitem>
514 <para>
515 (kpathsearch) exists to look up a file in a list of directories
516 and is used by <command>kpsewhich</command>.
517 </para>
518 <indexterm zone="texlive libkpathsea">
519 <primary sortas="c-libkpathsea">libkpathsea.so</primary>
520 </indexterm>
521 </listitem>
522 </varlistentry>
523
524 <varlistentry id="libptexenc">
525 <term><filename class="libraryfile">libptexenc.so</filename></term>
526 <listitem>
527 <para>
528 is a library for Japanese pTeX (publishing TeX).
529 </para>
530 <indexterm zone="texlive libptexenc">
531 <primary sortas="c-libptexenc">libptexenc.so</primary>
532 </indexterm>
533 </listitem>
534 </varlistentry>
535
536 <varlistentry id="libsynctex">
537 <term><filename class="libraryfile">libsynctex.so</filename></term>
538 <listitem>
539 <para>
540 is the SyncTeX (Synchronize TeXnology) parser library.
541 </para>
542 <indexterm zone="texlive libsynctex">
543 <primary sortas="c-libsynctex">libsynctex.so</primary>
544 </indexterm>
545 </listitem>
546 </varlistentry>
547
548 <varlistentry id="libtexlua52">
549 <term><filename class="libraryfile">libtexlua52.so</filename></term>
550 <listitem>
551 <para>
552 provides Lua 5.2, modified for use with LuaTeX.
553 </para>
554 <indexterm zone="texlive libtexlua52">
555 <primary sortas="c-libtexlua52">libtexlua52.so</primary>
556 </indexterm>
557 </listitem>
558 </varlistentry>
559
560 <varlistentry id="libtexluajit">
561 <term><filename class="libraryfile">libtexluajit.so</filename></term>
562 <listitem>
563 <para>
564 provides LuaJIT, modified for use with LuaJITTeX.
565 </para>
566 <indexterm zone="texlive libtexluajit">
567 <primary sortas="c-libtexluajit">libtexluajit.so</primary>
568 </indexterm>
569 </listitem>
570 </varlistentry>
571 </variablelist>
572
573 </sect2>
574
575</sect1>
Note: See TracBrowser for help on using the repository browser.