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.5 platform.

Package Information

Additional Downloads

TeX Live Dependencies


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: ICU-52.1, FreeType-2.5.2, Fontconfig-2.11.0, Graphite2-1.2.4, Harfbuzz-0.9.26 (linked to graphite2), libpng-1.6.9, Poppler-0.24.5


FFTW can be used by asy.

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, CLISP, 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.

At the moment, these instructions do not rebuild xindy which was installed by the binary installer, due to a problem with the tarball's install procedure. Asy and the rest of asymptote is by default not rebuilt, so we have to separately run configure and make in its directory.

patch -Np1 -i ../texlive-20130530-source-fix_asymptote-1.patch &&

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

../configure                                        \
    --prefix=/opt/texlive/2013                      \
    --bindir=/opt/texlive/2013/bin/x86_64-linux     \
    --datarootdir=/opt/texlive/2013                 \
    --includedir=/usr/include                       \
    --infodir=/opt/texlive/2013/texmf-dist/doc/info \
    --libdir=/usr/lib                               \
    --mandir=/opt/texlive/2013/texmf-dist/doc/man   \
    --disable-native-texlive-build                  \
    --disable-static --enable-shared                \
    --with-system-libgs                             \
    --with-system-poppler                           \
    --with-system-freetype2                         \
    --with-system-fontconfig                        \
    --with-system-libpng                            \
    --with-system-icu                               \
    --with-system-graphite2                         \
    --with-system-harfbuzz                          \
    --with-system-xpdf                              \
    --with-system-poppler                           \
    --with-system-cairo                             \
    --with-system-pixman                            \
    --with-system-zlib                              \
    --with-banner-add=" - BLFS" &&

pushd ../utils/asymptote &&
    echo "ac_cv_lib_m_sqrt=yes"     >config.cache &&
    echo "ac_cv_lib_z_deflate=yes" >>config.cache &&

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

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

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

Now, as the root user:

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

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

included in the TeX Live package are too numerous to individually list. Please refer to the individual program man and html pages in the installation directory's 2011/index.html directory.


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


is a library for Japanese pTeX (publishing TeX).

Last updated on 2014-02-20 09:50:58 -0800