glfs/pst/typesetting/texlive.xml

331 lines
13 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY texlive-source-download-http " ">
<!ENTITY texlive-source-download-ftp "ftp://tug.org/texlive/historic/&texlive-year;/texlive-&texlive-version;-source.tar.xz">
<!ENTITY texlive-source-md5sum "09ee265ff51637827559affc7304078c">
<!ENTITY texlive-source-size "40 MB">
<!-- buildsize is the source dir, plus the kpathsea files installed to /usr.
The progs in bin/$TEXARCH/ seem slightly smaller (shared libs) -->
<!ENTITY texlive-buildsize "555 MB">
<!ENTITY texlive-time "8.4 SBU">
]>
<sect1 id="texlive" xreflabel="texlive-&texlive-version;">
<?dbhtml filename="texlive.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>texlive-&texlive-version;</title>
<indexterm zone="texlive">
<primary sortas="a-texlive">texlive</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to TeX Live from source</title>
<para>A binary version of the <application>TeX Live</application> package
is installed at <xref linkend="tl-installer"/>. Here, we use that to rebuild
the compiled programs from source.</para>
&lfs75_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&texlive-source-download-http;"/></para>
</listitem>
<listitem>
<para>Download (FTP): <ulink url="&texlive-source-download-ftp;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &texlive-source-md5sum;</para>
</listitem>
<listitem>
<para>Download size: &texlive-source-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &texlive-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &texlive-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">TeX Live Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="tl-installer"/> or a previous version of TeX Live
(untested, you would need to alter the configure switches which refer
to &texlive-year; so that it overwrites your existing installation, or
else copy everything to the location for the current year), and
<xref linkend="clisp"/> (to build <command>xindy</command> which is an
index processor for multi-lingual index creation)
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="gs"/> (for dvisvgm - used by asymptote which provides a
mathematical coordinate-based framework for technical drawing),
<xref linkend="x-window-system"/>
</para>
<para>
The source ships with its own versions of <emphasis>many</emphasis>
libraries, and will use them unless it is forced to use the system
versions. The following are recommended so that the system version
will be used:
<xref linkend="fontconfig"/>,
<xref linkend="freetype2"/>,
<xref linkend="gc"/>,
<xref linkend="graphite2"/>,
<xref linkend="harfbuzz"/> (linked to graphite2),
<xref linkend="icu"/>,
<xref linkend="libpaper"/>,
<xref linkend="libpng"/>,
<xref linkend="poppler"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para>
The source ships with its own versions of several libraries which are either
not under active development, or only used for limited functionality. If
you install these, as with some other optional dependencies in this book you
will need to tell <command>configure</command> to use the system versions.
<ulink url="http://libgd.bitbucket.org">GD</ulink>,
<ulink url="http://fossies.org/linux/misc/t1lib-5.1.2.tar.gz/">t1lib</ulink>,
<ulink url="http://sourceforge.net/projects/zziplib/">ZZIPlib</ulink>,
<ulink url="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&amp;id=TECkitDownloads">TECkit</ulink>
</para>
<bridgehead renderas="sect4">Runtime dependencies</bridgehead>
<para role="recommended">
Some (re-installed) scripts will use
<xref linkend="python2"/> or <xref linkend="ruby"/>.
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/texlive"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of TeX Live</title>
<para>These instructions will overwrite the corresponding files from the
binary installer. As with the installer, change x86_64-linux to whatever
matches your architecture.</para>
<para>Please note that installing from source will recompile the binary
programs and recreate the <literal>man</literal> and <literal>info</literal>
files. It will also overwrite the scripts - some of these may be older
versions than those from the newer installer. It will <emphasis>not</emphasis>
recreate any of the following: the more than 200 symlinks in the
x86_64-linux directory (some are alternate names, many are pointers to
the scripts), html files, PDF files, licenses, README files, two config
files (<filename>texmf.cnf</filename> and <filename>texmfcnf.lua</filename>),
nor the many package and font files in
<filename class="directory">texmf-dist</filename> and
<filename class="directory">texmf-var</filename>, nor the files recording
the actions of the installer, and the <filename>ls-R</filename> files listing
what was originally installed.</para>
<para>Asy and the rest of asymptote is by default not rebuilt, so we have to
separately run <command>configure</command> and <command>make</command> in its
directory.
</para>
<screen><userinput>mkdir texlive-build &amp;&amp;
cd texlive-build &amp;&amp;
../configure \
--prefix=/opt/texlive/&texlive-year; \
--bindir=/opt/texlive/&texlive-year;/bin/x86_64-linux \
--datarootdir=/opt/texlive/&texlive-year; \
--includedir=/usr/include \
--infodir=/opt/texlive/&texlive-year;/texmf-dist/doc/info \
--libdir=/usr/lib \
--mandir=/opt/texlive/&texlive-year;/texmf-dist/doc/man \
--disable-native-texlive-build \
--disable-static --enable-shared \
--with-system-cairo \
--with-system-fontconfig \
--with-system-freetype2 \
--with-system-graphite2 \
--with-system-harfbuzz \
--with-system-icu \
--with-system-libgs \
--with-system-libpng \
--with-system-pixman \
--with-system-poppler \
--with-system-xpdf \
--with-system-zlib \
--with-banner-add=" - BLFS" \
--enable-xindy \
--enable-xindy-rules \
--enable-xindy-doc \
--with-clisp-runtime=system</userinput></screen>
<para>Asymptote has to be separately configured. It ships with its own copy
of the gc source tarball, and will only use the system version if that local
source is removed.
</para>
<screen><userinput>pushd ../utils/asymptote &amp;&amp;
rm -v gc-7.4.0.tar.gz &amp;&amp;
echo "ac_cv_lib_m_sqrt=yes" >config.cache &amp;&amp;
echo "ac_cv_lib_z_deflate=yes" >>config.cache &amp;&amp;
./configure LIBS="-ltirpc " \
--prefix=/opt/texlive/&texlive-year;/ \
--bindir=/opt/texlive/&texlive-year;/bin/x86_64-linux \
--enable-texlive-build \
--datarootdir=/opt/texlive/&texlive-year;/texmf-dist \
--infodir=/opt/texlive/&texlive-year;/texmf-dist/doc/info \
--mandir=/opt/texlive/&texlive-year;/texmf-dist/doc/man \
--cache-file=config.cache &amp;&amp;
popd &amp;&amp;
make &amp;&amp;
make -C ../utils/asymptote</userinput></screen>
<para>To test the results, issue: <command>make -k check &amp;&amp;
make -C utils/asymptote check</command>.</para>
<para>Now, as the <systemitem class="username">root</systemitem>
user:</para>
<screen><userinput role="root">make install &amp;&amp;
make -C ../utils/asymptote install</userinput></screen>
<para>One part of the package remains to be rebuilt:
<xref linkend="biber"/>.</para>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>--prefix=, --bindir=, --datarootdir=, --infodir=, --mandir= ...
</parameter>: these switches ensure that the files installed from source
will overwrite the corresponding files previously installed by
<application>install-tl</application>.
</para>
<para>
<parameter>--includedir=, --libdir= ...</parameter> : these switches ensure
that the libraries will be found at runtime, and that programs can be
compiled against them.
</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/static-libraries.xml"/>
<para>
<parameter>--enable-shared</parameter>: Use shared versions of
<filename class="libraryfile">libkpathsea</filename> and
<filename class="libraryfile">libptexenc</filename>.
</para>
<para>
<parameter>--with-system-...</parameter>: Unless this parameter is used,
the included versions of these libraries will be statically compiled
into the programs which need them. If you decided not to install a
recommended library, omit the corresponding switches.
</para>
<para>
<parameter>--with-system-xpdf</parameter>: Uniquely, this parameter has
a non-standard meaning, it tells <command>configure</command> to use the
system-installed <application>poppler</application> headers and library.
Again, omit this if you have not installed
<application>poppler</application>.
</para>
<para>
<parameter>echo "ac_cv_lib_m_sqrt=yes" ... LIBS="-ltirpc " &gt;config.cache,
... --cache-file=config.cache</parameter> : The configure scripts in
<application>TeX Live</application> are uncommon. Asymptote not only has to
be separately configured and built, the configure script fails to find the
shared <filename class="libraryfile">libtirpc.so</filename>. Passing that
in LIBS breaks the tests for (static) libm and (shared) libz, so we have to
fix things up, in much the same way as when cross-compiling.
</para>
<para>
<option>--without-x</option>: use this (and omit the configure and make in
<filename>utils/asymptote</filename> if you do not have Xorg installed.
</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>Over 300 binaries and symlinks to scripts</seg>
<seg>libkpathsea.so, libptexenc.so</seg>
<seg>/opt/texlive, /usr/include/kpathsea, /usr/include/ptexenc</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="texlive-programs">
<term><command>TeX&nbsp;programs</command></term>
<listitem>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/texprogs.xml"/>
<indexterm zone="texlive texlive-programs">
<primary sortas="b-texlive-programs">TeX Live programs</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libkpathsea">
<term><filename class="libraryfile">libkpathsea.so</filename></term>
<listitem>
<para>
(kpathsearch) exists to look up a file in a list of directories.
</para>
<indexterm zone="texlive libkpathsea">
<primary sortas="c-libkpathsea">libkpathsea.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libptexenc">
<term><filename class="libraryfile">libptexenc.so</filename></term>
<listitem>
<para>
is a library for Japanese pTeX (publishing TeX).
</para>
<indexterm zone="texlive libptexenc">
<primary sortas="c-libptexenc">libptexenc.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>