Difference between revisions of "Debian installation"

From Wiki
Jump to navigation Jump to search
 
(77 intermediate revisions by 17 users not shown)
Line 1: Line 1:
== Install teTeX 3.0 ==
+
{{note|Releases of Debian (or any other distribution for that matter) usually contain way too old TeX distributions for ConTeXt MKIV (but should work fine for MKII). If you want to live on bleeding edge, consider using the packages from Debian/unstable, [[ConTeXt Standalone]], or at least install the latest version of [[TeX Live]] with [[TLContrib]] manually.}}
  
Lucky Debian users can install official packages from <code>testing</code>
+
== Install the ConTeXt packages ==
or from <code>unstable</code>.
 
  
Just do:
+
The status of ConTeXt in Debian/unstable is currently up to date with TeX Live 2021, and includes all the necessary bits and pieces, plus the modules shipped in TeX Live.
  # apt-get install tetex-bin tetex-extra
 
  
You may verify it with
+
If you are running Debian sid or later, then the <code>context</code> and <code>context-modules</code> packages should already be visible.
<code>dpkg -l tetex-bin tetex-extra</code>,
+
Then do
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 ==
+
aptitude update
 +
aptitude install context context-modules
  
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.
+
* The final version in debian bullseye (aka debian stable 11.2) is 2020.03.10.20200331-1
 +
* In ''unstable'' is a version that is from the TeX Live 2021
  
Fetch the 1.30.6 release (tar or zip archive) from [[http://sarovar.org/projects/pdftex sarovar]].  
+
=== Install latest unstable context .deb package ===
  
From within the directory where you downloaded the archive file, execute the following
+
<tt>unstable</tt> means ''(mature) development'', the version number may changes. The software is ''stable''
series of commands:
 
<code>
 
  # unzip pdftex-1.30.6.zip
 
  # cd pdftex-1.30.6
 
</code>
 
  
Edit the build.sh file and add a valid datadir option:
+
1. Download the two .deb-s
<code>
+
http://packages.debian.org/unstable/all/context/download
  ...
+
http://packages.debian.org/unstable/all/context-modules/download
  ../src/configure \
 
              --datadir=/usr/share \
 
              --without-bibtex8  \
 
  ...
 
</code>
 
  
Then run build.sh:
+
2. run as root (the version number might have increased a bit)
<code>
+
dpkg --install context_2021.03.05.20220211-1_all.deb
  # sh ./build.sh
+
mtxrun --generate
</code>
 
  
If the build went OK, then the last four lines of terminal output are the
+
3. run as user
actual binaries and pool files for pdftex and pdfetex. These have to replace
+
mtxrun --generate
their existing counterparts in the teTeX installation.
 
  
'''Note:''' The next commands assume that <tt>`which pdfetex`</tt> can actually
+
Step 2. is currently still necessary, but soon an update of tex-common will run mtxrun --generate automatically when packages have changed (like mktexlsr), and there will be no need to run this anymore.
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
 
<tt>`kpsewhich pdfetex.pool`</tt>
 
  
<code>
+
Step 3. needs to be done only when you have files in TEXMFHOME or you change things there.
  # cp -f build/texk/web2c/pdfetex `which pdfetex`
 
  # cp -f build/texk/web2c/pdfetex.pool `kpsewhich pdfetex.pool`
 
  # fmtutil-sys --all
 
</code>
 
  
== Install a [[MetaPost]] update ==
+
You have now a system wide context-installation!
  
Update MetaPost is strongly recommended!
+
== See also ==
  
The included MetaPost in teTeX is a bit outdated. If you want, you can
+
{{Installation navbox}}
fetch and install the latest MetaPost from sarovar. The current release is 0.901.
 
Just download the source tarball from the [[http://sarovar.org/projects/metapost project page]]
 
 
 
From the directory where you downloaded the archive file, execute the following
 
series of commands:
 
<code>
 
  # 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
 
</code>
 
 
 
== Install a [[Latin Modern]] font update ==
 
 
 
 
 
Under Debian, root as just to ask :
 
 
 
<code>
 
  # apt-get install lmodern pts-tetex-cm-super
 
</code>
 
 
 
The configuration/update is handled by apt-get
 
 
 
 
 
On newer versions you do
 
<code>
 
  # apt-get install lmodern cm-super
 
</code>
 
 
 
== Install the latest ConTeXt ==
 
 
 
Fetch the current distro from Pragma ADE:
 
[[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
 
  cd texmf
 
  wget http://www.pragma-ade.com/context/current/cont-tmf.zip
 
  unzip cont-tmf.zip
 
  texexec --make
 
 
 
If you have already followed the following steps (because you've already upgraded your context installation relative to the default tetex-provided context), then you're done.  Otherwise, read on for the fiddly bits that need fixing.
 
 
 
=== Steps to finish a first context upgrade ===
 
 
 
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!)
 
 
 
The default <tt>tetex</tt> setup doesn't know about such locations (it doesn't know what it should), and it instead knows about other locations (it knows what it shouldn't).  Here is how to fix both problems.
 
 
 
==== Older context formats ====
 
 
 
There may be older context formats lying around, and the path searching code may find these older ones instead of the new ones lovingy made by <tt>texexec</tt>.
 
 
 
===== Deleting the older context formats ===
 
 
 
So you need delete the older ones.  But where are they?
 
 
 
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 versions: <tt>~/.texmf-var/web2c/cont-en.fmt</tt>, etc.  So I deleted the older ones. 
 
 
 
If you cannot 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.
 
 
 
===== Stopping fmtutil from making context-related formats =====
 
 
 
But how did the older ones get there?  <tt>fmtutil</tt>
 
 
 
And will it happen again?  Yes, though perhaps rarely (the most frustrating kind of bug).  At the next upgrade of <tt>tetex</tt>, which happens frequenty on Debian, the installation scripts will rerun <tt>fmtutil</tt> as root.  That probably won't cause you trouble because the formats generated will go in a system-wide format directory (e.g. in <tt>/var/lib/texmf/web2c/</tt>), and your new ones will override them once you finish these steps. 
 
 
 
However, if you, as an ordinary user, run <tt>texconfig</tt>, say to change your own default paper size from <tt>letter</tt> to <tt>a4</tt>, then <tt>tetex</tt> will regenerate all formats for you and put them in your format location <tt>~/.texmf-var/web2c/</tt> (without using the engine subdirectory).  And you're in the soup again.
 
 
 
So stop <tt>fmtutil</tt> from making any context-related formats, and let <tt>texexec</tt> handle it.  On standard <tt>tetex</tt> setups, you'd edit <tt>fmtutil.cnf</tt> (probaby in <tt>/var/lib/texmf/web2c/</tt>), but on Debian systems, that file is autogenerated from configlets (tiny pieces of a config file) living in <tt>/etc/texmf/fmt.d/</tt>. 
 
 
 
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>metafun</tt>, <tt>cont-en</tt>, and any other <tt>cont-*</tt> formats not already commented out.  Now generate a new system-wide configuration file:
 
 
 
  update-fmtutil
 
 
 
==== Finding the new formats ===
 
 
 
The path searching code will not find the newer formats because the code doesn't search subdirectories of <tt>web2c/</tt>.  The simple fix, telling it to search all subdirectories, does not work: Context may use several different engines, e.g. <tt>pdfetex</tt> or <tt>xetex</tt>, each with a set of formats, and you want <tt>texexec</tt> to find the correct set.  If it searches all subdirectories, it will use the first set that it happens to run across, which may not match the engine that you use.  Instead the searches should look in the subdirectory chosen according to the <i>engine</i>. 
 
 
 
To specify this kind of search, you'd normally edit <tt>texmf.cnf</tt> directly, but Debian uses configlets for it.  So edit the <tt>TEXFORMATS</tt> line in <tt>/etc/texmf/texmf.d/45TeXinputs.cnf</tt> to include this magic:
 
 
 
  TEXFORMATS = .;$TEXMF/web2c/{$engine,}
 
 
 
It says to look first in the <i>engine</i> subdirectory, then in the <tt>web2c</tt> directory itself.  Now generate a new <tt>texmf.cnf</tt> configuration file with (still as root):
 
 
 
  update-texmf
 
 
 
That step generates a new <tt>/etc/texmf/texmf.cnf</tt>, which Debian symlinks from its standard tetex location <tt>/usr/share/texmf/web2c/texmf.cnf</tt>.  With luck, you are done.  In the next section you will check whether everything is working by running <tt>texexec --version</tt>.
 
 
 
== Finished! ==
 
 
 
That should do it! The output of <code>texexec --version</code> is hopefully like this:
 
<code>
 
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
 
</code>
 
  
 
[[Category:Installation]]
 
[[Category:Installation]]
See also the [[Debian TeXlive install]] page.
 

Latest revision as of 00:46, 14 February 2022


NOTE: Releases of Debian (or any other distribution for that matter) usually contain way too old TeX distributions for ConTeXt MKIV (but should work fine for MKII). If you want to live on bleeding edge, consider using the packages from Debian/unstable, ConTeXt Standalone, or at least install the latest version of TeX Live with TLContrib manually.

Install the ConTeXt packages

The status of ConTeXt in Debian/unstable is currently up to date with TeX Live 2021, and includes all the necessary bits and pieces, plus the modules shipped in TeX Live.

If you are running Debian sid or later, then the context and context-modules packages should already be visible. Then do

aptitude update
aptitude install context context-modules
  • The final version in debian bullseye (aka debian stable 11.2) is 2020.03.10.20200331-1
  • In unstable is a version that is from the TeX Live 2021

Install latest unstable context .deb package

unstable means (mature) development, the version number may changes. The software is stable

1. Download the two .deb-s http://packages.debian.org/unstable/all/context/download http://packages.debian.org/unstable/all/context-modules/download

2. run as root (the version number might have increased a bit)

dpkg --install context_2021.03.05.20220211-1_all.deb
mtxrun --generate

3. run as user

mtxrun --generate

Step 2. is currently still necessary, but soon an update of tex-common will run mtxrun --generate automatically when packages have changed (like mktexlsr), and there will be no need to run this anymore.

Step 3. needs to be done only when you have files in TEXMFHOME or you change things there.

You have now a system wide context-installation!

See also