[tex-live] Where is the master control switch?

Reinhard Kotucha reinhard.kotucha at web.de
Mon Jul 31 23:47:20 CEST 2006

>>>>> "Ken" == Ken Brooks <kenb at rpath.com> writes:

  > I have read the kpathsea manual, 

It's certainly better to read the teTeX documentation (I just see that
it is also in TeXLive) first (run: texdoc TETEXDOC) before diving into
kpathsea details.  TETEXDOC.pdf provides a good overview.

kpathsea is working in the background and you'll have to understand
how it works only if you want to do unusual things or if something is

  > and the original texmf.cnf, and I am left with a few questions.
  > I'm a little unclear on what has to take place at compile time
  > vs. what is established at runtime:

texmf.cnf is the runtime configuration file.  

  > 1. Does a texmf.cnf need to be available at compile time when the
  > various tex programs are built?  In general, does the texmf tree
  > as a whole need to be installed for best results before compiling
  > tex programs?

The TeXLive build system treats the texmf trees and the binary tree
separately.  To compile the binaries, go into Build/source and run
the script ./Build .  That's all.  If configure complains that the
main texmf tree cannot be found, ignore the message.

  > 2. There are so many choices.  I'm wondering about best practices
  > for handling the numerous variables named in all-caps, found in
  > texmf.cnf and elsewhere: TEXMFMAIN, TEXMFLOCAL, TEXMFDBS,
  > VARTEXFONTS, etc.  Should these best be handled as - command line
  > parameters to "configure"?  - environment variables present when
  > configure is run?  - entries in texmf.cnf (presuming that TEXMFCNF
  > has been set already) - or, environment variables present at
  > runtime?

Avoid environment variables.  You don't need them when you compile the
binaries and you don't need them at runtime.  They are always a source
of trouble.  You only have to set TEXMFCNF if TeXLive is installed on
a read-only media.  In this case texmf.cnf has to be somewhere else.

  > 3. I have already observed that setting TEXMFMAIN as an
  > environment variable at runtime is inadequate.  How many such
  > variables would need to be separately set at runtime to make
  > things work right, if the texmf tree is not where it was expected
  > to be at compile time?

It doesn't matter where the texmf tree is at compile time.  If
configure complains, don't worry.

At runtime, all that is important is that you have a proper directory


The directory 'share' is optional.

/some/path can be a path to an arbitrary directory and you can change
it at any time.  The only thing you have to do is to make sure that
/some/path/bin/<platform> is in $PATH so that the binaries can be
found by the shell.

If you keep the directory structure intact, binaries determine the
directory in which they reside and then look for a texmf.cnf file
relative to this directory.  You don't have to change anything in
texmf.cnf unless you change the directory structure.

If you want to change TEXMFMAIN or any other variable for some reason,
there is one thing you should know:

In most cases it is not useful to change the texmf.cnf file provided
by TeXLive.  You can have your own texmf.cnf file


This file is found before texmf/web2c/texmf.cnf and variables you set
there are not overwritten when texmf/web2c/texmf.cnf is evaluated.

In other words, you have to put only the variables there which you
want to change.  This makes sense especially because the sources you
are using are under development and texmf.cnf might change as well.

BTW., you first asked for a method to download TeXLive which avoids to
transfer large files, such as the disk image.  I assume that you had
been interested in a stable release but what you are using now is very
unstable.  Expect that it doesn't always work.  If you intend to make
your copy of TeXLive available to many people I recommend to use a
stable release.

If you are more interested in a stable release, please let me know.
I think that there are other solutions.

A few hints about the TeXLive build system:

All you have to do is to run the Build/source/Build script.  The
binaries will appear in Build/source/inst .  It is a good idea to copy
them to somewhere else if the build was successful because the inst
directory is purged at the beginning of each build and everything is
lost if it fails.

The texmf trees can be symlinks to /some/path/share .  See above.


Reinhard Kotucha			              Phone: +49-511-4592165
Marschnerstr. 25
D-30167 Hannover	                      mailto:reinhard.kotucha at web.de
Microsoft isn't the answer. Microsoft is the question, and the answer is NO.

More information about the tex-live mailing list