How to update context modules; thank you, write-up, and a couple of questions
I asked how to update context modules.
Thank you very much to Marco for guidance, and I would like to write up how I used his advice to update a module without first-setup.sh. (I use a ubuntu/PPA installation of context and hence don't use first-setup.sh, which would make updating easy). 1. I downloaded the current version of the module (letter; http://modules.contextgarden.net/dl/t-letter-2013.07.31.zip in this case) from http://modules.contextgarden.net/ 2. I already have a personal /home/me/texmf directory (or would have created it). I put the zipped module update in this directory and unzipped it preserving the subdirectory structure. 3. I set the environment variable TEXMFHOME to my personal texmf directory ("export TEXMFHOME=/home/me/texmf") 4. I ran "mtxrun --script update --modules=letter" to tell context where to look for the new version of the letter module. I could now tell from the output that the updated version of the letter module was installed, and I also confirmed from the log file: resolvers > modules > 'letter' is loaded interface > macros > processed mkvi file '/home/me/texmf/tex/context/third/letter/base/s-cor-01.mkvi', delta 36 interface > macros > processed mkvi file '/home/me/texmf/tex/context/third/letter/base/s-cor-01.mkvi', delta 0 (before the update, the lines above read /usr/share/texmf... instead of /home/me/texmf...) I hope that this write-up is helpful to others. Please feel free to comment or amend if I've misunderstood. I have several questions: (1) Is it possible to tell which version of a module is installed, i.e., that I am using the 2013.07.31 version of letter? (The version of context appears in the log file but not the version of the module.) (2) After I update of the entire context installation, how will I tell context to again use the /usr/share/texmf version instead of the personal version? (3) Could I have done this installation into /usr/share/texmf and used "sudo mtxrun..." to make the updated module work on a multi-user system? (4) Where can I put personal files that I would like context to use regularly. For example I have three personal files: "env_letter.tex" which I include with "\environment env_letter"; a pdf file with my logo; and a pdf file with a scan of my signature. Is there a standard directory to hold such files, and how do I let context know where to find them, for example, with mtxrun? (It seems like a waste to copy them to a new location every time I want to write a letter). Thank you very much. Yours, Michael
On 2013–08–04 Michael Ash wrote:
(1) Is it possible to tell which version of a module is installed, i.e., that I am using the 2013.07.31 version of letter? (The version of context appears in the log file but not the version of the module.)
Often modules contain a line like \writestatus{loading}{Gnuplot (ver: 2013.05.13)} which outputs the version. But not all modules do. I don't know of any reliable way to tell the version. Modules do not even have to be versioned, It's up to the module writers.
(2) After I update of the entire context installation, how will I tell context to again use the /usr/share/texmf version instead of the personal version?
There's no built-in way to achieve that. Since ConTeXt can't tell which version of a module is installed, it can't prioritise a newer version. You have to remember to remove your manually installed module after it gets updated.
(3) Could I have done this installation into /usr/share/texmf and used "sudo mtxrun..." to make the updated module work on a multi-user system?
You can use the texmf-local directory.
(4) Where can I put personal files that I would like context to use regularly.
In the directory TEXMFHOME points to or texmf-local. Marco
participants (2)
-
Marco Patzer
-
Michael Ash