Difference between revisions of "Debian installation"
Line 105: | Line 105: | ||
[[http://www.pragma-ade.com/context/current/cont-tmf.zip cont-tmf.zip]] | [[http://www.pragma-ade.com/context/current/cont-tmf.zip cont-tmf.zip]] | ||
− | + | I would advise installing context in ~/texmf (~ refers to the current user home directory), rather than as the system default for every user on the machine. Once you're happy that it works for you, you could install it system-wide (TODO: need to give those instructions for Debian...). | |
mkdir texmf | mkdir texmf | ||
Line 113: | Line 113: | ||
texexec --make | texexec --make | ||
− | If you are | + | The Debian tetex-3.0 package (and probably the vanilla tetex-3.0) in combination with <tt>texexec</tt> puts user-generated format files in <tt>~/.texmf-var/web2c/<i>engine</i></tt> where <i>engine</i> is typically <tt>pdfetex</tt>. If you don't have such a directory, and you are using the default tetex configuration, tell the mailing list so that this installation information can be corrected! |
− | + | ||
− | + | Now you have two problems to correct: (1) there may be other, probably older context formats hanging around in <tt>~/.texmf-var/web2c/</tt> (i.e. above where <tt>texexec</tt> put the new ones), and the path searching code may find the older ones instead of the newer ones; (2) the path searching code may not find the newer ones at all, because it doesn't search subdirectories of <tt>web2c/</tt> (and you don't want it to automatically search all subdirectories, because there may be several different engines, e.g. <tt>pdfetex</tt>, <tt>xetex</tt>, etc. each with its own set of formats, and you want it to find the correct set, not just the first set it happens to run across). | |
− | + | ||
− | texexec -- | + | So, to take care of problem 1, which is the older context formats, you need delete them and stop <tt>fmtutil</tt> from making more of them. A likely location for them is <tt>~/.texmf-var/web2c/</tt> (i.e. not in a subdirectory of it). |
+ | |||
+ | When I ran <tt>texexec</tt>, it made <tt>cont-en.fmt</tt>, <tt>cont-nl.fmt</tt>, and <tt>mptopdf.fmt</tt> in <tt>~/.texmf-var/web2c/pdfetex/</tt> and they were shadowed by the older ones: <tt>~/.texmf-var/web2c/cont-en.fmt</tt>, etc. So I deleted the older ones. If you can't find them, use <tt>kpsewhich cont-en.fmt</tt> (and similarly for the other formats). Run the <tt>kpsewhich</tt> from a 'typical' directory (e.g. your home directory), rather than from <tt>~/.texmf-var/web2c/pdfetex/</tt> (adjust for your engine), otherwise it will find the newly created formats before any others. | ||
+ | |||
+ | Now part 1b: stop <tt>fmtutil</tt> making context-related formats (because it puts them in the wrong place, i.e. it doesn't use the <i>engine</i> information). As <tt>root</tt>: | ||
+ | |||
+ | emacs -nw /etc/texmf/fmt.d/01tetex.cnf | ||
+ | |||
+ | Or choose your favorite editor. Comment out (with a <tt>#!</tt>) the lines for <tt>mptopdf</tt>, <tt>cont-en</tt>, and any other <tt>cont-*</tt> formats not already commented out. Now generate a new system-wide configuration file (which in the default Debian (?) tetex-3.0 setup is in <tt>/var/lib/texmf/web2c/fmtutil.cnf</tt>): | ||
+ | |||
+ | update-fmtutil | ||
+ | |||
+ | Now to fix problem 2: the path searching code doesn't look in subdirectories of <tt>web2c/</tt> for formats. As mentioned above, you don't want it to blindly look in all of the subdirectories. Instead it should look in the subdirectory according to the <i>engine</i>. To do this, edit the <tt>TEXFORMATS</tt> line in <tt>/etc/texmf/texmf.d/45TeXinputs.cnf</tt> to have the engine-searching magic: | ||
+ | |||
+ | TEXFORMATS = .;$TEXMF/web2c/{$engine,} | ||
+ | |||
+ | Now generate a new <tt>texmf.cnf</tt> with (still as root): | ||
+ | |||
+ | update-texmf | ||
+ | |||
+ | That should generate a new <tt>/etc/texmf/texmf.cnf</tt>, which is symlinked from <tt>/usr/share/texmf/web2c/texmf.cnf</tt>. With luck, you are done. In the next step you will check whether everything is working by running <tt>texexec --version</tt>. | ||
== Finished! == | == Finished! == |
Revision as of 19:28, 7 April 2006
Contents
Install teTeX 3.0
Lucky Debian users can install official packages from testing
or from unstable
.
Just do:
# apt-get install tetex-bin tetex-extra
You may verify it with
dpkg -l tetex-bin tetex-extra
,
it should show something like
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii tetex-bin 3.0-14 The teTeX binary files ii tetex-extra 3.0-14 Additional library files of teTeX
Install a pdfTeX update
Since the Debian tetex-bin package already contains a pdftex program, this update is optional and ConTeXt should work even if the release of pdftex provided by tetex-bin is a little bit old.
Fetch the 1.30.6 release (tar or zip archive) from [sarovar].
From within the directory where you downloaded the archive file, execute the following
series of commands:
# unzip pdftex-1.30.6.zip
# cd pdftex-1.30.6
Edit the build.sh file and add a valid datadir option:
...
../src/configure \
--datadir=/usr/share \
--without-bibtex8 \
...
Then run build.sh:
# sh ./build.sh
If the build went OK, then the last four lines of terminal output are the actual binaries and pool files for pdftex and pdfetex. These have to replace their existing counterparts in the teTeX installation.
Note: The next commands assume that which pdfetex
can actually
find the executables from teTeX. If it doesn't work, then your PATH does not
include the teTeX binaries directory yet, and you should fix that first. Likewise for
kpsewhich pdfetex.pool
# cp -f build/texk/web2c/pdfetex which pdfetex
# cp -f build/texk/web2c/pdfetex.pool kpsewhich pdfetex.pool
# fmtutil-sys --all
Install a MetaPost update
Update MetaPost is strongly recommended!
The included MetaPost in teTeX is a bit outdated. If you want, you can fetch and install the latest MetaPost from sarovar. The current release is 0.901. Just download the source tarball from the [project page]
From the directory where you downloaded the archive file, execute the following
series of commands:
# tar xjf metapost-0.901.tar.bz2
# cd metapost-0.901
# ./Build
# cp texmf/metapost/base/* /usr/share/texmf-tetex/metapost/base
# cd build/texk/web2c
# cp -f mpost dvitomp mpware/dmp mpware/mpto mpware/newer mpware/makempx \
/usr/bin
# cp -f mp.pool /usr/share/texmf/web2c
# texhash
# fmtutil-sys --byfmt mpost
Install a Latin Modern font update
Under Debian, root as just to ask :
# apt-get install lmodern pts-tetex-cm-super
The configuration/update is handled by apt-get
On newer versions you do
# apt-get install lmodern cm-super
Install the latest ConTeXt
Fetch the current distro from Pragma ADE: [cont-tmf.zip]
I would advise installing context in ~/texmf (~ refers to the current user home directory), rather than as the system default for every user on the machine. Once you're happy that it works for you, you could install it system-wide (TODO: need to give those instructions for Debian...).
mkdir texmf cd texmf wget http://www.pragma-ade.com/context/current/cont-tmf.zip unzip cont-tmf.zip texexec --make
The Debian tetex-3.0 package (and probably the vanilla tetex-3.0) in combination with texexec puts user-generated format files in ~/.texmf-var/web2c/engine where engine is typically pdfetex. If you don't have such a directory, and you are using the default tetex configuration, tell the mailing list so that this installation information can be corrected!
Now you have two problems to correct: (1) there may be other, probably older context formats hanging around in ~/.texmf-var/web2c/ (i.e. above where texexec put the new ones), and the path searching code may find the older ones instead of the newer ones; (2) the path searching code may not find the newer ones at all, because it doesn't search subdirectories of web2c/ (and you don't want it to automatically search all subdirectories, because there may be several different engines, e.g. pdfetex, xetex, etc. each with its own set of formats, and you want it to find the correct set, not just the first set it happens to run across).
So, to take care of problem 1, which is the older context formats, you need delete them and stop fmtutil from making more of them. A likely location for them is ~/.texmf-var/web2c/ (i.e. not in a subdirectory of it).
When I ran texexec, it made cont-en.fmt, cont-nl.fmt, and mptopdf.fmt in ~/.texmf-var/web2c/pdfetex/ and they were shadowed by the older ones: ~/.texmf-var/web2c/cont-en.fmt, etc. So I deleted the older ones. If you can't find them, use kpsewhich cont-en.fmt (and similarly for the other formats). Run the kpsewhich from a 'typical' directory (e.g. your home directory), rather than from ~/.texmf-var/web2c/pdfetex/ (adjust for your engine), otherwise it will find the newly created formats before any others.
Now part 1b: stop fmtutil making context-related formats (because it puts them in the wrong place, i.e. it doesn't use the engine information). As root:
emacs -nw /etc/texmf/fmt.d/01tetex.cnf
Or choose your favorite editor. Comment out (with a #!) the lines for mptopdf, cont-en, and any other cont-* formats not already commented out. Now generate a new system-wide configuration file (which in the default Debian (?) tetex-3.0 setup is in /var/lib/texmf/web2c/fmtutil.cnf):
update-fmtutil
Now to fix problem 2: the path searching code doesn't look in subdirectories of web2c/ for formats. As mentioned above, you don't want it to blindly look in all of the subdirectories. Instead it should look in the subdirectory according to the engine. To do this, edit the TEXFORMATS line in /etc/texmf/texmf.d/45TeXinputs.cnf to have the engine-searching magic:
TEXFORMATS = .;$TEXMF/web2c/{$engine,}
Now generate a new texmf.cnf with (still as root):
update-texmf
That should generate a new /etc/texmf/texmf.cnf, which is symlinked from /usr/share/texmf/web2c/texmf.cnf. With luck, you are done. In the next step you will check whether everything is working by running texexec --version.
Finished!
That should do it! The output of texexec --version
is hopefully like this:
TeXExec 5.4.3 - ConTeXt / PRAGMA ADE 1997-2005
texexec : TeXExec 5.4.3 - ConTeXt / PRAGMA ADE 1997-2005
texutil : TeXUtil 9.0.0 - ConTeXt / PRAGMA ADE 1992-2004
tex : pdfeTeXk, 3.141592-1.30.4-2.2 (Web2C 7.5.5)
context : ver: 2005.10.27
cont-en : ver: 2005.10.27 fmt: 2005.11.1 mes: english
See also the Debian TeXlive install page.