Introduction to TeX Live from source

A binary version of the TeX Live package is installed at install-tl-unx. Here, we use that to rebuild the compiled programs from source.

This package is known to build and work properly using an LFS-7.6 systemd platform.

Package Information

TeX Live Dependencies


install-tl-unx or a previous version of TeX Live (untested, you would need to alter the configure switches which refer to 2014 so that it overwrites your existing installation, or else copy everything to the location for the current year), and Clisp-2.49 (to build xindy which is an index processor for multi-lingual index creation)


The source ships with its own versions of many 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: Fontconfig-2.11.1, FreeType-2.5.3, GC-7.4.2, Graphite2-1.2.4, Harfbuzz-0.9.35 (linked to graphite2), ICU-53.1, libpng-1.6.13, Poppler-0.26.4


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 configure to use the system versions. GD, t1lib, ZZIPlib, TECkit

Runtime dependencies

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/texlive

Installation of TeX Live

These instructions will overwrite the corresponding files from the binary installer. As with the installer, change x86_64-linux to whatever matches your architecture.

Please note that installing from source will recompile the binary programs and recreate the man and info files. It will also overwrite the scripts - some of these may be older versions than those from the newer installer. It will not 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 (texmf.cnf and texmfcnf.lua), nor the many package and font files in texmf-dist and texmf-var, nor the files recording the actions of the installer, and the ls-R files listing what was originally installed.

Asy and the rest of asymptote is by default not rebuilt, so we have to separately run configure and make in its directory.

mkdir texlive-build &&
cd texlive-build    &&

../configure                                        \
    --prefix=/opt/texlive/2014                      \
    --bindir=/opt/texlive/2014/bin/x86_64-linux     \
    --datarootdir=/opt/texlive/2014                 \
    --includedir=/usr/include                       \
    --infodir=/opt/texlive/2014/texmf-dist/doc/info \
    --libdir=/usr/lib                               \
    --mandir=/opt/texlive/2014/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                              \

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.

pushd ../utils/asymptote &&
rm -v gc-7.4.0.tar.gz &&

echo "ac_cv_lib_m_sqrt=yes"     >config.cache &&
echo "ac_cv_lib_z_deflate=yes" >>config.cache &&

./configure LIBS="-ltirpc "                         \
    --prefix=/opt/texlive/2014/                     \
    --bindir=/opt/texlive/2014/bin/x86_64-linux     \
    --enable-texlive-build                          \
    --datarootdir=/opt/texlive/2014/texmf-dist      \
    --infodir=/opt/texlive/2014/texmf-dist/doc/info \
    --mandir=/opt/texlive/2014/texmf-dist/doc/man   \
    --cache-file=config.cache &&
popd &&

make &&
make -C ../utils/asymptote

To test the results, issue: make -k check && make -C utils/asymptote check.

Now, as the root user:

make install &&
make -C ../utils/asymptote install

One part of the package remains to be rebuilt: biber-1.8.

Command Explanations

--prefix=, --bindir=, --datarootdir=, --infodir=, --mandir= ... : these switches ensure that the files installed from source will overwrite the corresponding files previously installed by install-tl.

--includedir=, --libdir= ... : these switches ensure that the libraries will be found at runtime, and that programs can be compiled against them.

--disable-static: This switch prevents installation of static versions of the libraries.

--enable-shared: Use shared versions of libkpathsea and libptexenc.

--with-system-...: 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.

--with-system-xpdf: Uniquely, this parameter has a non-standard meaning, it tells configure to use the system-installed poppler headers and library. Again, omit this if you have not installed poppler.

echo "ac_cv_lib_m_sqrt=yes" ... LIBS="-ltirpc " >config.cache, ... --cache-file=config.cache : The configure scripts in TeX Live are uncommon. Asymptote not only has to be separately configured and built, the configure script fails to find the shared libtirpc.so. 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.

--without-x: use this (and omit the configure and make in utils/asymptote if you do not have Xorg installed.


Installed Programs: Over 300 binaries and symlinks to scripts
Installed Libraries: libkpathsea.so, libptexenc.so
Installed Directories: /opt/texlive, /usr/include/kpathsea, /usr/include/ptexenc

Short Descriptions

TeX programs

The programs included in TeX are too numerous to individually list. Please refer to the individual program HTML and PDF pages in the installation directory's 2014/doc.html file, or the various html, man, or pdf files within the subdirectories of 2014/texmf-dist/.


(kpathsearch) exists to look up a file in a list of directories.


is a library for Japanese pTeX (publishing TeX).

Last updated on 2014-09-22 19:27:33 -0700