Dear all (and especially the linux heads...), I have been playing with my linux partition lately and looking at the linux installation section in the wiki. I see there are two approaches: - take the minimal linux distribution that Hans prepares, - start from TexLive I see why these approaches have their advantages. Nevertheless, I would want to add a further point: shouldn't we provide some hints for those who have a working TeX installation on linux and want to keep it because they are not (yet) exclusive ConTeXt users and want to be able to upgrade with their distribution's system? I have played around with several distros and think some general points could go into the wiki: 1. look at texmf.cnf; find out where TEXMFLOCAL is on your system. In most distros, the directory doesn't exist yet, create it. 2. In the definitions of texmf.cnf, make sure that TEXMFLOCAL comes before the other TEXMF trees. 3. unzip cont-tmf.zip into this directory, run mktexlsr or texhash 4. run texexec --make --al This last step gave and still gives me some headaches (my last attempt was with Opensuse 10.1 alpha 4), and that's where I ask for some elucidation: texexec does not rely on kpsewhich to locate the directory where it dumps the formats. So what I've seen happening is that I have brandnew formats in one place, yet texexec --version will still display the old versions (or say somehting like "cont-en.fmt unknown"). I have often just found out where kpsewhich searches for the formats and then replaced these old formats with symlinks to the new ones, but I'm not quite sure if this is a good approach. Does anyone have more insights on this? What's with this proliferation of TEXMF-trees in recent versions of teTeX: which ones do we actually need? Which ones can be deleted safely? Thanks Thomas
Thomas A. Schmitz wrote:
This last step gave and still gives me some headaches (my last attempt was with Opensuse 10.1 alpha 4), and that's where I ask for some elucidation: texexec does not rely on kpsewhich to locate the directory where it dumps the
texexec useses kpse but your texmf.cnf file may be kind of non standard; maybe you need to tweak that one
formats. So what I've seen happening is that I have brandnew formats in one place, yet texexec --version will still display the old versions (or say somehting like "cont-en.fmt unknown"). I have often just found out where kpsewhich searches for the formats and then replaced these old formats with symlinks to the new ones, but I'm not quite sure if this is a good approach. Does anyone have more insights on this? What's with this proliferation of TEXMF-trees in recent versions of teTeX: which ones do we actually need? Which ones can be deleted safely?
good point ... i lost track of that long ago; there is some info in the tex live manual about all those additional home/sys/whatever trees, maybe reading that manual helps Hans
Hi Thomas, Thomas A. Schmitz wrote:
Dear all (and especially the linux heads...),
I have been playing with my linux partition lately and looking at the linux installation section in the wiki. I see there are two approaches: - take the minimal linux distribution that Hans prepares, - start from TexLive
Minor correction: - start from teTeX (not the same as texlive)
I see why these approaches have their advantages. Nevertheless, I would want to add a further point: shouldn't we provide some hints for those who have a working TeX installation on linux and want to keep it because they are not (yet) exclusive ConTeXt users and want to be able to upgrade with their distribution's system?
I believe this is quite hard, because every distribution has a slightly different teTeX setup. My view was: if you want an up-to-date ConTeXt, start out fresh. Otherwise, you can save yourself an enormous hassle by learning to live with an outdated system. If you want to spend time on this, then kudos to you, but I have given up on the distribution-supplied TeX's altogether.
I have played around with several distros and think some general points could go into the wiki:
1. look at texmf.cnf; find out where TEXMFLOCAL is on your system. In most distros, the directory doesn't exist yet, create it.
2. In the definitions of texmf.cnf, make sure that TEXMFLOCAL comes before the other TEXMF trees.
3. unzip cont-tmf.zip into this directory, run mktexlsr or texhash
4. run texexec --make --al
Now you often still have a broken ConTeXt distribution, even if you can get 4. to work, because you also need the latest latin-modern font distribution. And for that, you have to make another set of changes to texmf.cnf because the older latin-moderns used different paths and filenames for just about everything, and you have to make sure the new ones are found. And don't forget that you probably have to fix updmap's config file as well to make sure dvips remains working. You'll also still have a rather outdated pdftex and metapost, but I guess that is not really a big deal for most people.
This last step gave and still gives me some headaches (my last attempt was with Opensuse 10.1 alpha 4), and that's where I ask for some elucidation: texexec does not rely on kpsewhich to locate the directory where it dumps the formats. So what I've seen happening is that I have brandnew formats in one place, yet texexec --version will still display the old versions (or say somehting like "cont-en.fmt unknown"). I have often just found out where kpsewhich searches for the formats and then replaced these old formats with symlinks to the new ones, but I'm not quite sure if this is a good approach. Does anyone have more insights
That solution is fine. Here's what happened. In the "really old" days, formats ended with .fmt, like plain.fmt. When etex and omega came around, they identified themselves by having e.g. plain.efmt (note the extra "e"), so that they could coexist happily. However, this cluttered the build system quite a bit, so recently it was decided to drop the extra characters. At that time, it was understood that there would be an extra subdirectory below texmf/web2c to differentiate between the different engines (at least, that is what Hans and I gathered from the discussion). So you would have, e.g. "web2c/pdfetex/cont-en.fmt" as well as "web2c/omega/cont-en.fmt". But it turned out that since LaTeX has separate names for the different formats anyway (Lambda etc.), ConTeXt was the only client of this new feature, and Thomas Esser decided that it was not worth the effort to support these extra directories. However, for ConText it would be very, very unwieldy to have cont-pdfetex-en.fmt, cont-xetex-en.fmt, cont-aleph-en.fmt etc., each six or seven times. And because context is always called through texexec, the latest texexec's implement this engine subdirectory functionality for you. Finally, what goes wrong: unless you either delete the teTeX-supplied context formats or change texmf.cnf, the old formats will be found first by kpathsea.
on this? What's with this proliferation of TEXMF-trees in recent versions of teTeX: which ones do we actually need? Which ones can be deleted safely?
The strangest ones are the ~/.texmf-var ones, where fmtutil and updmap dump their stuff. They are documented in /usr/local/teTeX/share/texmf/web2c/texmf.cnf if you use Thomas' distribution. Cheers and good luck! Taco
Taco, Hans, thanks for your reactions. And I see that Taco speaks from (bad) experience. I have always fiddled around and tried to make ConTeXt work in the linux distros i have tried so far (since I'm on ppc, there were four of them: gentoo, fedora, ubuntu, suse), but have never made any systematic approach. I'm really grateful for Taco's explanations; this helps me a lot. On Dec 13, 2005, at 11:55 AM, Taco Hoekwater wrote:
I believe this is quite hard, because every distribution has a slightly different teTeX setup. My view was: if you want an up-to-date ConTeXt, start out fresh. Otherwise, you can save yourself an enormous hassle by learning to live with an outdated system.
:-)
If you want to spend time on this, then kudos to you, but I have given up on the distribution-supplied TeX's altogether.
Now you often still have a broken ConTeXt distribution, even if you can get 4. to work, because you also need the latest latin-modern font distribution.
And for that, you have to make another set of changes to texmf.cnf because the older latin-moderns used different paths and filenames for just about everything, and you have to make sure the new ones are found. And don't forget that you probably have to fix updmap's config file as well to make sure dvips remains working.
You'll also still have a rather outdated pdftex and metapost, but I guess that is not really a big deal for most people.
OK, what about that: my aim would be to have one up-to-date ConTeXt installation in TEXMFLOCAL and leave everything else pretty much untouched. One could easily add a step to unzip cont-lmt.zip into TEXMFLOCAL as well. I've done it and it doesn't appear to break things with other TeX programs (disclaimer: I use pdf*tex exclusively, so I don't know about dvips).
That solution is fine. Here's what happened. In the "really old" days, formats ended with .fmt, like plain.fmt.
When etex and omega came around, they identified themselves by having e.g. plain.efmt (note the extra "e"), so that they could coexist happily.
However, this cluttered the build system quite a bit, so recently it was decided to drop the extra characters. At that time, it was understood that there would be an extra subdirectory below texmf/web2c to differentiate between the different engines (at least, that is what Hans and I gathered from the discussion). So you would have, e.g. "web2c/pdfetex/cont-en.fmt" as well as "web2c/omega/cont-en.fmt".
But it turned out that since LaTeX has separate names for the different formats anyway (Lambda etc.), ConTeXt was the only client of this new feature, and Thomas Esser decided that it was not worth the effort to support these extra directories.
However, for ConText it would be very, very unwieldy to have cont- pdfetex-en.fmt, cont-xetex-en.fmt, cont-aleph-en.fmt etc., each six or seven times. And because context is always called through texexec, the latest texexec's implement this engine subdirectory functionality for you.
Finally, what goes wrong: unless you either delete the teTeX-supplied context formats or change texmf.cnf, the old formats will be found first by kpathsea.
OK, then one step would be: find the old .fmt files and delete them.
The strangest ones are the ~/.texmf-var ones, where fmtutil and updmap dump their stuff. They are documented in
/usr/local/teTeX/share/texmf/web2c/texmf.cnf
OK, will RTFM. One final thought: I remember reading an article (by Siep? in MAPS?) that having more than one texmf.cnf wasn't too difficult. Would that be an option I should try? Having one which just lets all the defaults provided by the distribution and one (set via an environment variable) which will put TEXMLOCAL before anything else? Thanks, and best Thomas
Thomas A. Schmitz wrote:
OK, will RTFM. One final thought: I remember reading an article (by Siep? in MAPS?) that having more than one texmf.cnf wasn't too difficult. Would that be an option I should try? Having one which just lets all the defaults provided by the distribution and one (set via an environment variable) which will put TEXMLOCAL before anything else?
make an .../texmf-mine and $TEXMFMINE and put that one first in the $TEXMF list; just make sure that your own stuff is found first Hans
participants (3)
-
Hans Hagen
-
Taco Hoekwater
-
Thomas A. Schmitz