Next Previous Contents

9. Appendix B: Installing the CTAN teTeX distribution.

The generic, teTeX distribution isn't any harder to install than the Linux packages. See section Generic CTAN distribution, below.

You should consider installing the generic teTeX distribution from the CTAN archives if:

A complete installation of the binary distribution requires 40-50 Mb of disk space, and building the distribution from the source code takes about 75 Mb, so you should make sure that the disk space is available before you start. You don't need to have the GCC compiler or the X Windows System installed (although X certainly helps because it is much easier to preview documents on-screen). All you need is an editor that is capable of producing plain ASCII, text (see section 2). What could be simpler?

You can retrieve the files from one of the CTAN archives listed in section Appendix A. In the examples below, the files were retrieved from the CTAN archive at

9.1 Installing the binary distribution.

Minimal installation.

First, FTP to and cd to the directory

Retrieve the files
and place them in the top-level directory where you want to install teTeX, for example, /var/teTeX if you plan to install teTeX in the /var file system.

Print out the INSTALL.bin file. Keep this file handy, because it describes how to install a minimal teTeX installation. The minimal installation requires only 10-15 MB of disk space, but it is recommended that you install the complete teTeX package if at all possible. For a minimum installation, you'll need the files

You'll also need one of two archives which contain the executable teTeX programs. Retrieve the archive file
if your system uses the Linux ELF shared libraries, of at least version 1.73, and clibs of at least version 5.09. If it doesn't, retrieve the archive
which is compiled for systems that use the older, a.out-format static libraries.

Then, following the instructions in the file INSTALL.bin, execute the command

sh ./
while in the top-level teTeX installation directory. (Make sure that the teTeX archives are located there, too.) After a few moments, the installation program will warn you that you are missing some of the teTeX packages. However, if you're planning only a minimal teTeX installation, you should ignore the warnings and proceed. To configure the basic teTeX system, see section Base system configuration, below.

To install the remaining packages, see the next section.

Complete installation.

To perform a complete teTeX installation, retrieve the archive files listed in the previous section, as well as the following files:

All of these files should be placed in the top-level directory where you want teTeX to reside. As with the minimal installation, execute the command
sh ./

9.2 Base system configuration.

The script, after determining which teTeX archive series are present, will present you with a menu of options. The only setting you need to make at this point is to set the top-level directory where you want teTeX installed, by selecting the ``D'' option. You must, of course, choose a directory in whose parent directory you have write permissions. For example, if you are installing teTeX in your home directory, you would specify the teTeX installation directory as

and, after returning to the main menu, select ``I'' to proceed with the installation. Note that the directory must not exist already: the script must be able to create it.

An option which you should consider enabling, is setting an alternative directory for generated fonts. Even if you plan to use only Postscript-format, Type 1 scalable fonts, occasionally you'll process a file that requires the Computer Modern fonts. Enabling this option requires that you enter the directory to use. You must have write permissions for the parent directory. Following the example above, you could specify

or, if you want the generated fonts to be accessible by all users on the system, specify a directory like
I would recommend that you not, however, use the default /var/tmp/texfonts directory for this option, because the generated fonts could be deleted after the next reboot, and the fonts will need to be generated again the next time they're needed.

After you've selected the option ``I'', and has installed the archives, set various permissions, and generated its links and format files, the program will exit with a message telling you to add the teTeX binary directory to your $PATH environment variable, and the directories where the man pages and info files reside to your $MANPATH and $INFOPATH environment variables. For example, add the statements

export PATH=$PATH:"/home/john.q.public/teTeX/bin"
export MANPATH=$MANPATH":/home/john.q.public/teTeX/man"
export INFOPATH$=INFOPATH":/home/john.q.public/teTeX/info"
to your ~/.bash_profile if you use bash as your shell, or to your ~/.profile if you use another shell for logins.

Log out, and then log in again, so the environment variables are registered. Then, run the command

texconfig confall
to insure that the installation is correct.

Next, you can configure teTeX for you specific hardware. See section Post-installation configuration details, below.

9.3 Installing the CTAN source distribution.

To install teTeX V. 0.4 from the source code, ftp to a CTAN site like and retrieve the files


Read over the instructions in INSTALL.src, then su to root and unpack the files in a directory for which you have read-write-execute permissions.

Remember to use the p argument to tar, and also remember to unset the noclobber option of bash. You can do this with the counterintuitive command

set +o noclobber
Note that the argument +o to set unsets a variable, just exactly backwards from what you might expect.

The file teTeX-lib-0.4pl8.tar.gz will create the directory ./teTeX. The file teTeX-src-0.4pl7.tar.gz will create the directory teTeX-src-0.4 Print out the file INSTALL.src and keep it nearby for the following steps. cd to the ./teTeX-src-0.4 directory, and, per the instructions in the INSTALL.src file, edit ./Makefile. You need to set the TETEXDIR variable to the absolute path of the parent teTeX directory. This will be the subdirectory teTeX of the directory where you unpacked the source and library archives. For example, if you unpacked the archives in your home directory, you would set TETEXDIR to

The rest of the Makefile options are pretty generic. With GCC version 2.7.2 and later, you should not need to make any further adjustments unless you have a non-standard compiler and library setup, or want the compiler to perform some further optimizations, or for some other reason. Check that the USE_DIALOG, USE_NCURSES, and HAVE_NCURSES variables are set correctly for your system, because the dialog program needs the ncurses library to be installed. A ncurses library is included in the source distribution, so the default values in the Makefile should work fine. If you can't get ncurses to compile or link, texconfig can also be run from the command line.

If you've done everything correctly up to this point, you should be able to type make world in the top-level source directory, and relax until the teTeX executables are built. This can take a few hours.

After the build has completed, set the environment variables $PATH, $MANPATH, and $INFOPATH to include the teTeX directories. The statements which would be added to the file ~/.bash_profile, in the example, above, would be

export PATH=$PATH":/home/john.q.public/teTeX/bin/i386-linux"
export MANPATH=$MANPATH":/home/john.q.public/teTeX/man"
export INFOPATH=$INFOPATH":/home/john.q.public/teTeX/info"
The $PATH variable is different in the source distribution than in the binary distribution. Note that here the path to the binaries is teTeX/bin/i386-linux instead of simply teTeX/bin as in the binary distribution.

At this point you can run texconfig confall to ensure that the paths have been set correctly, and then proceed to configure teTeX as in the binary distribution. See the section Post-installation configuration details, below.

9.4 Post-installation configuration details.

The first thing you want to do is look at Thomas Esser's README file. It contains a lot of hints on how to configure teTeX for your output device (i.e., printer). The README file is located in the directory

Read the file over with the command (the path in the following examples is that of the Slackware distribution):
less /usr/lib/teTeX/texmf/doc/tetex/README
or, print it out with the command
cat /usr/lib/teTeX/texmf/doc/tetex/README >/dev/lp0
assuming that your printer is connected to /dev/lp0. Substitute the device driver file that your printer is connected to, as appropriate.

Or, better still, print it using the lpr command:

lpr /usr/lib/teTeX/texmf/doc/tetex/README
You should have installed the printer daemon that is included with your distribution of Linux. If not, do that now, per the instructions that come with the package.

Print out the teTeX-FAQ. Keep the FAQ handy because it contains useful hints for configuring teTeX's output drivers for your printer. We'll get to that in a moment. In more recent releases of teTeX, the teTeX-FAQ is viewable via the texconfig utility.

Next, you want to define a directory to store your own TeX format files. teTeX searches the directories listed by the $TEXINPUTS environment variable for local TeX input files:

export TEXINPUTS=".:~/texinputs:"
to the system-wide /etc/profile file. Individual users can set their own local $TEXINPUTS directory, by adding the line in their ~/.profile or ~/.bash_profile if bash is the default shell. The $TEXINPUTS environment variable tells teTeX to look for users' individual TeX style files in the ~/texinputs directories under each user's home directory. It is critical that a colon appear before and after this directory. teTeX is going to append its own directory searches to your own. You want to have teTeX search the local format files first, so it uses the local versions of any of the standard files you have edited.

Add the /usr/lib/teTeX/bin directory to the system-wide path if you're installing teTeX as root. Again, if you're installing a personal copy of teTeX, add the directory where the teTeX binaries are located to the front your $PATH with the following line in your ~/.profile or ~/.bash_profile:

export PATH="~/tetex/bin:"$PATH
Now, log in as root and run texconfig per the instructions in the teTeX-FAQ and choose the printer that is attached to your system. Make sure that you configure teTeX for both the correct printer and printer resolution.

Finally, run the texhash program. This ensures that teTeX's internal database is up to date. The database is actually a ls-lR file. You must run texhash every time you change the system configuration, or teTeX will not be able to locate your changes.

Next Previous Contents