TL ConTeXt in minimal setup

Joseph Wright joseph.wright at
Tue Jul 18 10:52:33 CEST 2023

On 18/07/2023 09:17, Joseph Wright wrote:
> On 18/07/2023 06:47, Joseph Wright wrote:
>> Hi Karl,
>> On 17/07/2023 23:51, Karl Berry wrote:
>>>      OK, you have to run mtxrun with LuaTeX:
>>>         luatex --luaonly <path-to>/mtxrun.lua --generate
>>> Thanks Joseph. It seems complex to be the invocation for tlmgr, though
>>> could be done, of course. I also thought context automatically rebuilt
>>> its stuff at the drop of a hat precisely to avoid such manual
>>> rebuilds. I'm baffled as usual.
>> I suspected it's not run anywhere 'manually' by tlmgr: I wanted mainly 
>> to ensure there was a record on the list of what seems to fix the 
>> issue. Probably I'll end up adding this to the script that does the 
>> install so things work.
>> I'm still trying to track down what it is that's different between 
>> scheme-infraonly + package context and a fuller install. I'll keep 
>> experimenting.
>> Joseph
> OK, I've found that if I use a profile installing "scheme-context", then 
> everything is OK, but if I use a profile using "scheme-infraonly" then 
> "tlmgr install scheme-context", it doesn't!
> Looking what the installation routine actually logs when using 
> scheme-context from a profile, it says
>      setting up ConTeXt cache: running mtxrun --generate ...done
>      running context --luatex --generate ...done
> and indeed if I use "scheme-infraonly", add in "context" then run those 
> two commands, it works.
> So the question is what the subtle difference is between installing 
> "scheme-context" from a profile and from tlmgr.
> Regards,
> Joseph

Ah, I have it! The *only* place that TeX Live sets up the ConTeXt cache 
is in install-tl:

   my $lmtx = "$plat_bindir/luametatex$progext";
   if (exists($install{"context"}) && $install{"context"} == 1
       && TeXLive::TLUtils::system_ok("$lmtx --version")
      ) {
     info("setting up ConTeXt cache: ");
     $errcount += run_postinst_cmd("mtxrun --generate");
     $errcount += run_postinst_cmd("context --luatex --generate");
   } else {
     debug("skipped ConTeXt cache setup\n");

So now I understand why nothing is being triggered. I guess my question 
is now 'why is this done in the install script rather than listed as an 
"execute" in texlive.tlpdb? (I guess that would need a short dedicated 


More information about the tex-live mailing list.