[NTG-context] updating context on Ubuntu 6.06

Sanjoy Mahajan sanjoy at mrao.cam.ac.uk
Wed Jul 26 17:17:00 CEST 2006

> >>1. (optional cleanup) Delete the old Context-installed files in
> >>   ~/texmf/.  This step is optional, but I do it so that I can track the
> I am not so sure that step is optional. Because if the preinstalled
> version had a cont-sys.tex or cont-usr.tex, then this step may be
> required to make sure you are not using an out-of-date version of
> these files.

Good point, thanks. I'll incorporate it into the eventual wiki page.

> A somehwat more flexible version is
>    #!/bin/sh
>    ruby `kpsewhich --format='texmfscripts' texmfstart.rb` $@
> (also notice the lack of quotes around $@)

According to the bash man entry:

       @      Expands to the positional parameters, starting from  one.   When
              the  expansion  occurs  within  double  quotes,  each  parameter
              expands to a separate word.  That is, "$@" is equivalent to "$1"
              "$2" ...

So if you ran texmfstart with 

  texmfstart --option="hi there"

then the $@ form would produce

  texmfstart.rb --option=hi there

which would leave 'there' standing alone as a second argument.
Whereas the "$@" form would produce

  texmfstart.rb "--option=hi there"

This second form is what you want, no?

> > $ texmfstart ctxtools --updatecontext
> > kpsewhich: option `--expand-var' requires an argument
> Do not worry about that until the rest of the install is correct, it
> may start working automagically.

It didn't work magically, but Jano Kula's suggestion about TEXMFLOCAL
made it work.  I looked at the TEXMFLOCAL in the /etc/texmf/texmf.cnf
and did:

  TEXMFLOCAL=/usr/local/share/texmf texmfstart ctxtools --updatecontext 

That worked fine except now there's version clash.  During the update
it said

  CtxTools | updating /usr/local/share/texmf

and it downloaded the cont-tmf.zip there and unzipped it, remade the
formats, and put them under ~/.texmf-var.  So now the formats are
based on the new context (2006.07.24) but for example,

  $ texmfstart ctxtools --contextversion
  CtxTools | context version: 2006.07.14 12:08 (/home/sanjoy/texmf/tex/context/base/context.tex)
  CtxTools | context version: 2006.07.14 12:08 (/home/sanjoy/texmf/tex/context/base/cont-new.tex)

So texmfstart is finding the older source files in ~/texmf (from the
2006.07.14 update) although the formats themselves are newer.  And
trying a simple file gives:

  $ texexec t
  ConTeXt  ver: 2006.07.14 12:08  fmt: 2006.7.26  int: english  mes: english

which worked fine, I guess since the two versions are sufficiently
compatible.  To avoid this problem, is it possible to put the new
version in ~/texmf instead of in TEXMFLOCAL?  Although in ~/texmf may
be wrong for others, so it's a difficult problem...


`Never underestimate the evil of which men of power are capable.'
         --Bertrand Russell, _War Crimes in Vietnam_, chapter 1.

More information about the ntg-context mailing list