[NTG-context] Suddenly can't run context

Mojca Miklavec mojca.miklavec.lists at gmail.com
Mon Nov 19 07:48:46 CET 2012


On Mon, Nov 19, 2012 at 4:34 AM, Aditya Mahajan wrote:
> On Sun, 18 Nov 2012, Bill Meahan wrote:
>
>>> 2. Something is messed up in $HOME/texmf or $HOME/.texlive2012. Rename
>>> these directories to something different and try again.
>>
>>
>> Done that several times -- no dice
>
> I normally do not use TL, but looked into it, and the texmfcnf.lua script
> distributed with texlive does not look right. I am attaching the output of
> mtxrun --generate that I get. Note the following liines:
>
> resolvers       | resolving | variable 'SELFAUTOLOC' set to '/usr/bin'
> resolvers       | resolving | variable 'SELFAUTODIR' set to '/usr'
> resolvers       | resolving | variable 'SELFAUTOPARENT' set to '.'

It looks as if you were using Debian/Ubuntu? Or any other flavour of
Linux with a native TeX Live package?

> resolvers       | resolving | variable 'TEXMFCNF' set to ''
> resolvers       | resolving | variable 'TEXMF' set to ''
> resolvers       | resolving | variable 'TEXOS' set to '/usr'
> ....
> resolvers       | resolving | found configuration file
> '/usr/share/texmf/web2c/texmfcnf.lua'
> ....
> resolvers       | resolving | loading configuration file
> 'selfautodir:/share/texmf/web2c/texmfcnf.lua'
> ...

> mtxrun --generate

resolvers       | resolving | variable 'SELFAUTOLOC' set to
'/usr/local/texlive/2012/bin/x86_64-darwin'
resolvers       | resolving | variable 'SELFAUTODIR' set to
'/usr/local/texlive/2012/bin'
resolvers       | resolving | variable 'SELFAUTOPARENT' set to
'/usr/local/texlive/2012'
resolvers       | resolving | variable 'TEXMFCNF' set to ''
resolvers       | resolving | variable 'TEXMF' set to ''
resolvers       | resolving | variable 'TEXOS' set to 'bin'
resolvers       | resolving |
resolvers       | resolving | using configuration specification
'home:texmf/web2c;{selfautoloc:,selfautoloc:/share/texmf-local/web2c,selfautoloc:/share/texmf/web2c,selfautoloc:/texmf-local/web2c,selfautoloc:/texmf/web2c,selfautodir:,selfautodir:/share/texmf-local/web2c,selfautodir:/share/texmf/web2c,selfautodir:/texmf-local/web2c,selfautodir:/texmf/web2c,selfautoparent:/../texmf-local/web2c,selfautoparent:,selfautoparent:/share/texmf-local/web2c,selfautoparent:/share/texmf/web2c,selfautoparent:/texmf-local/web2c,selfautoparent:/texmf/web2c}'
resolvers       | resolving |
...
resolvers       | resolving | found configuration file
'/usr/local/texlive/2012/texmfcnf.lua'
...
resolvers       | resolving | found configuration file
'/usr/local/texlive/2012/texmf/web2c/texmfcnf.lua'
resolvers       | resolving |
resolvers       | resolving | loading configuration file
'selfautoparent:/texmfcnf.lua'
resolvers       | resolving |
resolvers       | resolving | loading configuration file
'selfautoparent:/texmf/web2c/texmfcnf.lua'

> Now, the /usr/share/texmf/web2c/texmfcnf.lua file says:
>
>  TEXMFSYSVAR     = "selfautoparent:texmf-var",
>  TEXMFVAR        = "home:.texlive2012/texmf-var",
> ....
>  TEXMFMAIN       = "selfautoparent:texmf",
>  TEXMFDIST       = "selfautoparent:texmf-dist",
> ....
>
> Note from the mtxrun that selfautoparent is set to '', therefore, TEXMFMAIN
> is set to 'texmf' and TEXMFDIST is set to 'texmf-dist'. And therefore,
> `mtxrun --generate` is not scanning the right trees, therefore does not
> build a cache of the right trees, and consequently, cannot find
> mtx-context.lua.
>
> To check my theory, I followed the following steps:
>
> 1. Create a directory ~/mytexmfcnf and copied the texmfcnf.lua file from
> /usr/share/texmf/web2c/ to this directory.
>
> 2. Open ~/mytexmfcnf/texmfcnf.lua and change
>
>    %s/selfautoparent:/\/usr\/share\/
>
> 3. Run
>
>    TEXMFCNF=~/mytexmfcnf mtxrun --generate
>
> 4. Run
>
>    TEXMFCNF=~/mytexmfcnf context --version
>
> which then gives
>
> mtx-context     | ConTeXt Process Management 0.52
> mtx-context     |
> mtx-context     | main context file:
> /usr/share/texmf-dist/tex/context/base/context.mkiv
> mtx-context     | current version: 2012.05.30 11:26
>
> So I wonder how does context (MkIV) work at all with TL2012!

Maybe it just doesn't work with your linux box :P
One explanation could be that texmfcnf.lua hasn't been configured properly.
It works with plain TeX Live with default installation.

MacPorts would do the following:

post-patch {
    foreach x {texmf.cnf.d/10paths.cnf texmfcnf.lua texlive-update-cnf} {
        reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/${x}
        reinplace "s|@@TEXMFMAIN@@|${texlive_texmfmain}|g" ${worksrcpath}/${x}
        reinplace "s|@@TEXMFDIST@@|${texlive_texmfdist}|g" ${worksrcpath}/${x}
        reinplace "s|@@TEXMFPORTS@@|${texlive_texmfports}|g" ${worksrcpath}/${x}
        reinplace "s|@@TEXMFLOCAL@@|${texlive_texmflocal}|g" ${worksrcpath}/${x}
        reinplace "s|@@TEXMFSYSVAR@@|${texlive_texmfsysvar}|g"
${worksrcpath}/${x}
        reinplace "s|@@TEXMFSYSCONFIG@@|${texlive_texmfsysconfig}|g"
${worksrcpath}/${x}
        reinplace "s|@@TEXMFHOME@@|${texlive_texmfhome}|g" ${worksrcpath}/${x}
        reinplace "s|@@TEXLIVE_BINDIR@@|${texlive_bindir}|g" ${worksrcpath}/${x}
    }
}


To Bill: can you try
    which luatex context
    sudo which luatex context
and in particular because you have TeX Live installed in home dir, I
would suggest not to run any command as sudo at all. In particular,
don't try to run "mtxrun --generate" or "context --make" as sudo. It
might be that the cache is not writable by you any more. But then
again - something seems to be wrong with your configuration. How
exactly did you install TeX Live.  Where do you have any texmfcnf.lua?
Please also post the output of a working ConTeXt run and/or "mtxrun
--generate", in particular the part that Aditya posted (definition of
SELFAUTOLOC etc.).

Mojca


More information about the ntg-context mailing list