Introduction to TeX Live and its installer
The TeX Live package is a
comprehensive TeX document production system. It includes TeX,
LaTeX2e, ConTeXt, Metafont, MetaPost, BibTeX and many other
programs; an extensive collection of macros, fonts and
documentation; and support for typesetting in many different
scripts from around the world.
This page is for people who wish to use the binary installer to
provide the programs, the scripts, and a lot of supporting files
and documentation. The installer is updated frequently, so any
published md5sum will soon be out of date. Newer versions of the
installer are expected to work with these instructions, for so long
as they install to a 2023/
directory.
There are two reasons why you may wish to install the binaries in
BLFS: either you need a smaller install (e.g. at a minimum plain
TeX without LaTeX2e, ConTeXt, etc), or you wish to use tlmgr to get updates whilst this
version is supported (typically, until April of the year after it
was released). For the latter, you might prefer to install in your
/home
directory as an unprivileged
user, and to then make corresponding changes to the PATH in your
~/.bashrc
or equivalent.
This package is known to build and work properly using an LFS 12.1
platform.
Package Information
Recommended
GnuPG-2.4.4 (to validate both the initial
downloads, and also any updates you might later make using
tlmgr.) libwww-perl-6.76 (to use a single
connection to the server, which will reduce its load and speed
things up.)
Recommended (at runtime)
The binaries are mostly linked to included static libraries or
general (LFS) system libraries, but a few of the programs and
several scripts will fail if the following packages are not
present:
ghostscript-10.02.1 is dynamically loaded
by the external application dvisvgm, which is used by asy when that creates SVG files.
Xorg
Libraries and libxcb-1.16 are needed for inimf, mf, pdfclose,
pdfopen and xdvi-xaw. But if you are using asy, or using a
TeX engine to create a PDF file,
you will need a graphical
environment (for PDF files, this is to support a PDF viewer of
your choice, for example epdfview-gtk3-20200814).
The binary version of asy needs
Freeglut-3.4.0.
The binary version of asy is linked to libGLX.so.0 from libglvnd, but
installing that will break future updates of BLFS packages such as
Mesa-24.0.1. Work around that by creating a
symlink as the root
user:
ln -sv libGL.so.1 /usr/lib/libGLX.so.0
The binary versions of biber and
xindy are linked to libcrypt.so.1
from old versions of glibc. To use these two applications, follow
the Note about binary-only applications in libxcrypt in LFS to install the ABI version 1
crypt library.
Note
As always with contributed binary software, it is possible that
the required dependencies may change when the installer is
updated. In particular, these dependencies have only been checked
on x86_64.
Python-2.7.18 is used by the unmaintained ebong
CTAN module (intended for writing Bengali in Rapid Roman Format).
/usr/bin/python
is also in the
shebang line for the latex-papersize and lilyglyphs scripts, and
documentation at CTAN says both modules have been updated to work
with python3. In pythontex there are scripts to invoke python3 or
python2 according to the system's version of python. Ruby-3.3.0 is used by
two scripts, one is for pTex (Japanese vertical writing) and the
other is match_parens which might be generally useful. The perl
module
Tk, which needs to be run from an X11 session to run the tests
and requires Tk-8.6.13 is used by one of the scripts for ptex
and is needed for texdoctk (a GUI interface for finding
documentation files and opening them with the appropriate viewer).
ps2pdf, from
ghostscript-10.02.1, is used by some
utilities and scripts.
Binary Installation of TeX Live
The TeX Live set of programs with
its supporting documents, fonts, and utilities is very large. The
upstream maintainers recommend placing all files in a single
directory structure. BLFS recommends /opt/texlive
.
As with any other package, unpack the installer and change into its
directory, install-tl-<CCYYMMDD>
. This directory name
changes when the installer is updated, so replace <CCYYMMDD>
by the correct directory name.
Warning
If you have installed any of the luatex programs (luatex,
luahbtex, luajitex, luajithbtex) or ConTeXt with the luametatex
backend there was a security issue fixed by the introduction of
luatex v1.17.0. You should check the version with 'luatex
--version' and if it is less than 1.17.0 you can use tlmgr to
update.
Note
The distribution binaries installed below may use static linking
for general linux system libraries. Additional libraries or
interpreters as specified in the dependencies section do not need
to be present during the install, but the programs that need them
will not run until their specific dependencies have been
installed.
With all contributed binary software, there may be a mismatch
between the builder's toolchain and your hardware. In most of TeX
this will probably not matter, but in uncommon corner cases you
might hit problems. For example, if your x86_64 processor does
not support 3dnowext or 3dnow, the 2014-06-28 binary failed in
conTeXt when running LuaTeX, although lualatex worked, as did the
i686 binaries on the same machine. In such cases, the easiest
solution is to install texlive from source. Similarly, the x86_64
binary version of asy runs very slowly when
creating 3-D diagrams.
Now, as the root
user:
TEXLIVE_INSTALL_PREFIX=/opt/texlive ./install-tl
This command is interactive and allows selection or modification of
platform, packages, directories, and other options. The full
installation scheme will require about 4.9 gigabytes of disk space.
The time to complete the download will depend on your internet
connection speed and the number of packages selected.
It has been established by Debian that the python scripts in latex-make
will work with python3, so update them to invoke
that by running the following command as the root
user:
for F in /opt/texlive/2023/texmf-dist/scripts/latex-make/*.py ; do
test -f $F && sed -i 's%/usr/bin/env python%/usr/bin/python3%' $F || true
done