On Linux, and to a slightly lesser extent on Windows and Mac, TeX Live is the de-facto TeX distribution. However, TeX Live is not satisfactory to a ConTeXt user because the updates on TeX Live are slow. Only stable releases of ConTeXt are synced with TeX Live, while ConTeXt users are accustomed to the almost daily beta releases of ConTeXt. (So much so that if ConTeXt is not updated for a few days, users think that something is wrong with their setup).
An alternative TeX distribution for ConTeXt is ConTeXt Minimals. Its name, and motto, should not be confused with minimalism. On the contrary, ConTeXt minimals contains everything needed to run ConTeXt (well everything except ruby, which is used by MkII scripts) and once installed, it occupies a good 200MB disk space. It is minimal in the sense that if you took away anything from it, some functionality of ConTeXt would be crippled.
The Minimals is a rsync based distribution. I will not bore you with the installation instructions that are well explained on the ConTeXt wiki. The main advantage of the minimals is that it can be installed in parallel with an existing TeX distribution. So, you can continue to use TeX Live for LaTeX related stuff, while, at the same time, use the Minimals for ConTeXt related stuff.
Nonetheless, the Minimals are not completely satisfactory given the fickle nature of some of the ConTeXt beta releases. Sometimes, the beta has a serious bug and it is essential to revert to an earlier release. In the past, I used to take care of this my having multiple Minimal installations in parallel: one installation for the latest beta, one installation for the latest beta that does not break any of my projects, one installation for a critical project, and so on. However, keeping track of, and testing, all the installation became a chore. Since about an year now, I use only one installation that syncs to the latest beta release.
But what about reverting to an earlier release if something goes wrong? This is where Arch Linux’s package management comes in. Basically, in Arch Linux if you want to install a package that is not part of the standard distribution, you can build a binary package for that program using
makepkg. The advantage of using this approach is that installation, update, removal, etc. of the package can be managed by the standard package management tool:
pacman. In case of ConTeXt Minimals, an additional advantage of this approach is that you can keep the old binary packages around and revert to an earlier version if something goes wrong.
So, if you use Arch Linux and ConTeXt, try this alternative approach to installing ConTeXt minimals.
Choose a directory where you will store the installation scripts and the binary packages. I use
$ cd $HOME/Software $ git clone git://github.com/adityam/context-pkgbuild.git $ cd context-pkgbuild
Build ConTeXt Minimals. The first time you do this, the script downloads around 200MB of data, so be patient. Subsequent updates are faster as only files that have changed are downloaded.
This will create a file called
context-minimals-git-<year><month><date>.tar.gz, which is a compressed binary package.
To install this package run
$ pacman -U context-minimals-git-<year><month><date>.tar.gz
This installs ConTeXt Minimals at
/opt/context-minimals/. To use ConTeXt Minimals, run
$ source /opt/context-minimals/setuptex
from the shell that you use to compile a document. If you run ConTeXt from an editor, you have to add that line to the editor’s startup scripts.
When you want to update to the latest beta, simply run
$ cd $HOME/Software/context-pkgbuild $ makepkg
and a new binary package
context-minimals-git-<year><month><date>.tar.gz will be created. Upgrade ConTeXt using
$ pacman -U context-minimals-git-<new-date>.tar.gz
Do not delete the old binary packages. If something goes wrong with the new beta, you can revert to the earlier version by reinstalling that package using
$ pacman -U context-minimals-git-<old-date>.tar.gz
This gives the best of both worlds: a complete and up-to-date ConTeXt distribution using the Minimals, and the ability to revert back to earlier releases using
pacman. I have been using this setup for almost an year now, without any major glitches.