[tex-k] Question on upgrading teTeX

Thomas Esser te@informatik.uni-hannover.de
Wed, 24 Jan 2001 20:39:30 +0100 (MET)


> > As long as you keep the directory tree together, you can move the new
> > system somewhere else after your tests.
> 
> I'll mull over your solution -- I'm not sure I understand it completely.
> 
> But if I move the new texmf tree,
> won't I either have to re-compile or else set TEXMFCNF ?

Well, it depends. The point is to make sure that the texmf.cnf file
in the main tree is read. Besides the absolute compile-time-path for
the texmf/web2c directory, a few other directories are searched first.
These are (relative to the location of the binary):
  . .. ../.. ./share/texmf.local/web2c ../share/texmf.local/web2c
  ../../share/texmf.local/web2c ./texmf.local/web2c ../texmf.local/web2c
  ../../texmf.local/web2c ./share/texmf/web2c ../share/texmf/web2c
  ../../share/texmf/web2c ./texmf/web2c ../texmf/web2c ../../texmf/web2c

> I should perhaps have made clear
> that I rarely get new teTeX texmf trees,
> so I regard the teTeX texmf tree as essentially fixed,
> except for the format files which are variable,
> like the binaries.

In teTeX, the cleanest way to support different pool and format files is
to use the vartexmf feature. I.e. you have an extra texmf tree with just
the variable texmf data. If texconfig finds a VARTEXMF variable, it will
store format files etc. in that texmf tree. This can be done by putting
  TEXMF = '!!{$VARTEXMF,$TEXMFMAIN}'
into the main texmf tree's texmf.cnf file and having different VARTEXMF
settings, e.g.  by putting a texmf.cnf file (with just one line for the
VARTEXMF definition) into the directory where the binaries are.

Example. You might want to set up the following directory structore:
  /usr/local/teTeX/web2c-7.0-bin/ix86-linux
  /usr/local/teTeX/web2c-7.0-bin/sparc-solaris
  /usr/local/teTeX/web2c-7.3.1-bin/ix86-linux
  /usr/local/teTeX/web2c-7.3.1-bin/sparc-solaris
  /usr/local/teTeX/share/texmf
  /usr/local/teTeX/share/vartexmf-web2c-7.0
  /usr/local/teTeX/share/vartexmf-web2c-7.3.1

To set up the search paths (without env vars), you can set

  in /usr/local/teTeX/share/texmf/web2c/texmf.cnf:
    TEXMF = '!!{$VARTEXMF,$TEXMFMAIN}'

  in /usr/local/teTeX/web2c-7.0-bin/texmf.cnf:
    VARTEXMF = /usr/local/teTeX/share/vartexmf-web2c-7.0

  in /usr/local/teTeX/web2c-7.3.1-bin/texmf.cnf:
    VARTEXMF = /usr/local/teTeX/share/vartexmf-web2c-7.3.1

If you start /usr/local/teTeX/web2c-7.0-bin/ix86-linux/tex
it will read /usr/local/teTeX/web2c-7.0-bin/texmf.cnf and then
/usr/local/teTeX/share/texmf/web2c/texmf.cnf.

Thomas