problem with MkIV/TeXlive/TEXMFCACHE
Dear experts, I want to use ConTeXt MkIV as supplied by TeXlive 2021. After installation, I ran "mtxrun --generate". I also tried "context --generate". Both create output in the wrong place. The TeXlive documentation says that ConTeXt uses TEXMFCACHE, which uses the default $TEXMFSYSVAR;$TEXMFVAR in my texmf.cnf. My TEXMFSYSVAR is /var/opt/texlive, but ConTeXt doesn't use it. Instead, it creates /opt/texmf-var and creates its output there. I don't understand why it used that path; I've never used or configured it. How can I convice ConTeXt to use TEXMFSYSVAR? Or is this a question for the TeXlive folks? Thanks for looking at this. Regards, Rainer
On Fri, Aug 27, 2021 at 10:35 AM Rainer J.H. Brandt via ntg-context < ntg-context@ntg.nl> wrote:
Dear experts,
I want to use ConTeXt MkIV as supplied by TeXlive 2021. After installation, I ran "mtxrun --generate". I also tried "context --generate". Both create output in the wrong place.
The TeXlive documentation says that ConTeXt uses TEXMFCACHE, which uses the default $TEXMFSYSVAR;$TEXMFVAR in my texmf.cnf. My TEXMFSYSVAR is /var/opt/texlive, but ConTeXt doesn't use it. Instead, it creates /opt/texmf-var and creates its output there. I don't understand why it used that path; I've never used or configured it.
How can I convice ConTeXt to use TEXMFSYSVAR?
Or is this a question for the TeXlive folks?
Thanks for looking at this.
What does $> tlmgr conf say ? -- luigi
Hello Luigi, you asked:
On Fri, Aug 27, 2021 at 10:35 AM Rainer J.H. Brandt via ntg-context < ntg-context@ntg.nl> wrote:
Dear experts,
I want to use ConTeXt MkIV as supplied by TeXlive 2021. After installation, I ran "mtxrun --generate". I also tried "context --generate". Both create output in the wrong place.
The TeXlive documentation says that ConTeXt uses TEXMFCACHE, which uses the default $TEXMFSYSVAR;$TEXMFVAR in my texmf.cnf. My TEXMFSYSVAR is /var/opt/texlive, but ConTeXt doesn't use it. Instead, it creates /opt/texmf-var and creates its output there. I don't understand why it used that path; I've never used or configured it.
How can I convice ConTeXt to use TEXMFSYSVAR? [...]
What does $> tlmgr conf say ?
The output is appended below and looks reasonable. In particular, it shows that I installed under /opt/local/share/texlive and doesn't mention the "mtxrun --generate" output path /opt/texmf-var at all. Please note that I don't use tlmgr and also that I didn't use the TeX Live installer. I built the binaries from their sources and then installed the rest from the texmf archive file. I use other engines on a daily basis, mostly pdflatex, and they work flawlessly. Thanks, Rainer =========================== version information ========================== tlmgr revision 57970 (2021-02-27 15:17:34 +0100) tlmgr using installation: /opt ==================== executables found by searching PATH ================= PATH: /opt/local/bin:/opt/local/bin:/usr/local/bin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/bin:/sbin:/Users/rjhb/doc/cvs/rjhb/perl5/bin:.:/Applications/Qt/current/clang_64/bin:/usr/X11/bin dvipdfmx: /opt/local/bin/dvipdfmx dvips: /opt/local/bin/dvips fmtutil: /opt/local/bin/fmtutil kpsewhich: /opt/local/bin/kpsewhich luatex: /opt/local/bin/luatex mktexpk: /opt/local/bin/mktexpk pdftex: /opt/local/bin/pdftex tex: /opt/local/bin/tex tlmgr: /opt/local/bin/tlmgr updmap: /opt/local/bin/updmap xetex: /opt/local/bin/xetex =========================== active config files ========================== config.ps: /opt/local/share/texlive/texmf-dist/dvips/config/config.ps fmtutil.cnf: /opt/local/share/texlive/texmf-dist/web2c/fmtutil.cnf mktex.cnf: /opt/local/share/texlive/texmf-dist/web2c/mktex.cnf pdftexconfig.tex: /opt/local/share/texlive/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex texmf.cnf: /opt/local/share/texlive/texmf-dist/web2c/texmf.cnf updmap.cfg: /opt/local/share/texlive/texmf-dist/web2c/updmap.cfg ============================= font map files ============================= kanjix.map: /opt/local/share/texlive/texmf-dist/fonts/map/dvipdfmx/updmap/kanjix.map pdftex.map: /opt/local/share/texlive/texmf-dist/fonts/map/pdftex/updmap/pdftex.map ps2pk.map: /opt/local/share/texlive/texmf-dist/fonts/map/dvips/updmap/ps2pk.map psfonts.map: /opt/local/share/texlive/texmf-dist/fonts/map/dvips/updmap/psfonts.map =========================== kpathsea variables =========================== ENCFONTS=.:{{}/Users/rjhb/etc/texmf,/Users/rjhb/var/texmf,/Users/rjhb/lib/texmf,!!/opt/local/share/texlive/texmf-local,!!/opt/local/share/texlive/texmf-config,!!/var/opt/texlive,!!/opt/local/share/texlive/texmf-dist}/fonts/enc// SYSTEXMF=/var/opt/texlive:/opt/local/share/texlive/texmf-local:/opt/local/share/texlive/texmf-dist TEXCONFIG={{}/Users/rjhb/etc/texmf,/Users/rjhb/var/texmf,/Users/rjhb/lib/texmf,!!/opt/local/share/texlive/texmf-local,!!/opt/local/share/texlive/texmf-config,!!/var/opt/texlive,!!/opt/local/share/texlive/texmf-dist}/dvips// TEXFONTMAPS=.:{{}/Users/rjhb/etc/texmf,/Users/rjhb/var/texmf,/Users/rjhb/lib/texmf,!!/opt/local/share/texlive/texmf-local,!!/opt/local/share/texlive/texmf-config,!!/var/opt/texlive,!!/opt/local/share/texlive/texmf-dist}/fonts/map/{kpsewhich,pdftex,dvips,}// TEXMF={{}/Users/rjhb/etc/texmf,/Users/rjhb/var/texmf,/Users/rjhb/lib/texmf,!!/opt/local/share/texlive/texmf-local,!!/opt/local/share/texlive/texmf-config,!!/var/opt/texlive,!!/opt/local/share/texlive/texmf-dist} TEXMFCONFIG=/Users/rjhb/etc/texmf TEXMFDBS={!!/opt/local/share/texlive/texmf-local,!!/opt/local/share/texlive/texmf-config,!!/var/opt/texlive,!!/opt/local/share/texlive/texmf-dist} TEXMFDIST=/opt/local/share/texlive/texmf-dist TEXMFHOME=/Users/rjhb/lib/texmf TEXMFLOCAL=/opt/local/share/texlive/texmf-local TEXMFMAIN=/opt/local/share/texlive/texmf-dist TEXMFSYSCONFIG=/opt/local/share/texlive/texmf-config TEXMFSYSVAR=/var/opt/texlive TEXMFVAR=/Users/rjhb/var/texmf TEXPSHEADERS=.:{{}/Users/rjhb/etc/texmf,/Users/rjhb/var/texmf,/Users/rjhb/lib/texmf,!!/opt/local/share/texlive/texmf-local,!!/opt/local/share/texlive/texmf-config,!!/var/opt/texlive,!!/opt/local/share/texlive/texmf-dist}/{dvips,fonts/{enc,type1,type42,type3}}// VARTEXFONTS=/Users/rjhb/var/texmf/fonts WEB2C={{}/Users/rjhb/etc/texmf,/Users/rjhb/var/texmf,/Users/rjhb/lib/texmf,!!/opt/local/share/texlive/texmf-local,!!/opt/local/share/texlive/texmf-config,!!/var/opt/texlive,!!/opt/local/share/texlive/texmf-dist}/web2c ==== kpathsea variables from environment only (ok if no output here) ==== TEXMFCNF=/opt/local/share/texlive/texmf-dist/web2c
On Mon, Aug 30, 2021 at 11:49 AM Rainer J.H. Brandt via ntg-context < ntg-context@ntg.nl> wrote:
Hello Luigi,
you asked:
On Fri, Aug 27, 2021 at 10:35 AM Rainer J.H. Brandt via ntg-context < ntg-context@ntg.nl> wrote:
Dear experts,
I want to use ConTeXt MkIV as supplied by TeXlive 2021. After installation, I ran "mtxrun --generate". I also tried "context --generate". Both create output in the wrong place.
The TeXlive documentation says that ConTeXt uses TEXMFCACHE, which uses the default $TEXMFSYSVAR;$TEXMFVAR in my texmf.cnf. My TEXMFSYSVAR is /var/opt/texlive, but ConTeXt doesn't use it. Instead, it creates /opt/texmf-var and creates its output there. I don't understand why it used that path; I've never used or configured it.
How can I convice ConTeXt to use TEXMFSYSVAR? [...]
What does $> tlmgr conf say ?
The output is appended below and looks reasonable. In particular, it shows that I installed under /opt/local/share/texlive and doesn't mention the "mtxrun --generate" output path /opt/texmf-var at all.
Please note that I don't use tlmgr and also that I didn't use the TeX Live installer. I built the binaries from their sources and then installed the rest from the texmf archive file. I use other engines on a daily basis, mostly pdflatex, and they work flawlessly.
Thanks, Rainer
hm, my $> mtxrun --variables says resolvers | lists | TEXMFCACHE resolvers | lists | env: unset resolvers | lists | var: TEXMFCACHE resolvers | lists | exp: selfautoparent:texmf-var;home:.texlive2021/texmf-var and it's ok. So perhaps your selfautoparent it's not ok. -- luigi
luigi scarso via ntg-context writes:
On Fri, Aug 27, 2021 at 10:35 AM Rainer J.H. Brandt via ntg-context < ntg-context@ntg.nl> wrote:
The TeXlive documentation says that ConTeXt uses TEXMFCACHE, which uses the default $TEXMFSYSVAR;$TEXMFVAR in my texmf.cnf. My TEXMFSYSVAR is /var/opt/texlive, but ConTeXt doesn't use it.
hm, my $> mtxrun --variables says resolvers | lists | TEXMFCACHE resolvers | lists | env: unset resolvers | lists | var: TEXMFCACHE resolvers | lists | exp: selfautoparent:texmf-var;home:.texlive2021/texmf-var
and it's ok. So perhaps your selfautoparent it's not ok.
I will check that. But, as I said, my texmf.cnf sets TEXMFCACHE to $TEXMFSYSVAR;$TEXMFVAR, and TEXMFSYSVAR is /var/opt/texlive. Why is that ignored? Thanks, Rainer
Arthur Rosendahl writes:
On Mon, Aug 30, 2021 at 12:48:05PM +0200, Rainer J.H. Brandt via ntg-context wrote:
But, as I said, my texmf.cnf sets TEXMFCACHE to $TEXMFSYSVAR;$TEXMFVAR, and TEXMFSYSVAR is /var/opt/texlive. Why is that ignored?
Do you have write permission on that directory?
Yes and no. I'm trying to set up a multi-user environment, and /var/opt/texlive is owned by the software owner. Nobody else may write there. I ran "mtxrun --generate" while being that software owner. (I'm used to doing it this way for other engines.) I want to configure the system so that everybody may use contents from TEXMFSYSVAR, but optionally uses an additional personal directory. I don't know if this makes sense in the case of luatex-cache, but had thought so. Thanks, Rainer
On Mon, 30 Aug 2021, Rainer J.H. Brandt via ntg-context wrote:
But, as I said, my texmf.cnf sets TEXMFCACHE to $TEXMFSYSVAR;$TEXMFVAR, and TEXMFSYSVAR is /var/opt/texlive. Why is that ignored?
mtxrun (and context MKIV and LMTX) do not read texmf.cnf rather read values from contextcnf.lua (it used to be texmfcnf.lua, not sure how TL handles this). You can also try setting it explicitly in the shell: $ TEXMFCACHE=/var/opt/texlive/texmf-cache mtxrun --generate Aditya
Aditya Mahajan via ntg-context writes:
On Mon, 30 Aug 2021, Rainer J.H. Brandt via ntg-context wrote:
But, as I said, my texmf.cnf sets TEXMFCACHE to $TEXMFSYSVAR;$TEXMFVAR, and TEXMFSYSVAR is /var/opt/texlive. Why is that ignored?
mtxrun (and context MKIV and LMTX) do not read texmf.cnf rather read values from contextcnf.lua (it used to be texmfcnf.lua, not sure how TL handles this).
Thanks a lot. That put me on the right track. I see that this file is mentioned on the wiki, but I hadn't recognized its importance. I have found and edited texmfcnf.lua, and made progress.
You can also try setting it explicitly in the shell:
$ TEXMFCACHE=/var/opt/texlive/texmf-cache mtxrun --generate
I tried to avoid that, and thanks to your pointer above, won't need that. However, I'm still not completely happy: I've set TEXMFCACHE to contain /var/opt/texlive first and then also an individual directory under $HOME. When I run context under my personal account, it only uses the second. I assume that's because I may not write under the first. There's a comment in texmfcnf.lua about that. Does it perhaps make no sense at all to have a system-wide luatex-cache? Thank you, Rainer
On Mon, Aug 30, 2021 at 12:48 PM Rainer J.H. Brandt via ntg-context < ntg-context@ntg.nl> wrote:
luigi scarso via ntg-context writes:
On Fri, Aug 27, 2021 at 10:35 AM Rainer J.H. Brandt via ntg-context < ntg-context@ntg.nl> wrote:
The TeXlive documentation says that ConTeXt uses TEXMFCACHE, which uses the default $TEXMFSYSVAR;$TEXMFVAR in my texmf.cnf. My TEXMFSYSVAR is /var/opt/texlive, but ConTeXt doesn't use it.
hm, my $> mtxrun --variables says resolvers | lists | TEXMFCACHE resolvers | lists | env: unset resolvers | lists | var: TEXMFCACHE resolvers | lists | exp: selfautoparent:texmf-var;home:.texlive2021/texmf-var
and it's ok. So perhaps your selfautoparent it's not ok.
I will check that.
But, as I said, my texmf.cnf sets TEXMFCACHE to $TEXMFSYSVAR;$TEXMFVAR, and TEXMFSYSVAR is /var/opt/texlive. Why is that ignored?
look at texmfcnf.lua -- luigi
participants (4)
-
Aditya Mahajan
-
Arthur Rosendahl
-
luigi scarso
-
rjhb@bb-c.de