Path problems w/ MkIV on Arch Linux
Hello, Folks-- Once again I'm returning to ConTeXt after a long absence [maybe if I just kept using it I wouldn't have these problems?]. I'm trying to get started with MkIV; I don't feel a strong need to have the very latest code, so unless there are serious bugs, I want to use the version included with TexLive. At any rate, that's what I currently have and am trying to use. But I am running into issues with files not being found, e.g.: $ context --make mtxrun | unknown script 'context.lua' or 'mtx-context.lua' Yes, I ran mtxrun --generate first, though I am a bit confused as to whether I need to run that *and* luatools --generate, or just one or the other. Anyway, mtxrun --generate appears to work: $ mtxrun --generate .... resolvers | resolving | found configuration file '/usr/share/texmf-dist/web2c/texmfcnf.lua' .... system | lua | compiling '/var/cache/texmf/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5044cbe2799fe389b078f26ff6b9ee8e.lua' into '/var/cache/texmf/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5044cbe2799fe389b078f26ff6b9ee8e.luc' system | lua | dumping '/var/cache/texmf/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5044cbe2799fe389b078f26ff6b9ee8e.lua' into '/var/cache/texmf/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5044cbe2799fe389b078f26ff6b9ee8e.luc' stripped resolvers | caching | 'files' compiled to '/var/cache/texmf/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5044cbe2799fe389b078f26ff6b9ee8e.luc' This shows that mtxrun finds the correct configuration file--as far as I know, /usr/share/texmf-dist/web2c/texmfcnf.lua is the only instance of texmfcnf.lua on my system. And then it uses the value I have set in texmfcnf.lua to cache its output: TEXMFCACHE = "/var/cache/texmf", -- not used by context at all TEXMFSYSVAR = "$TEXMFCACHE", TEXMFVAR = "$TEXMFCACHE", So that's good. Yet the 'context' and 'luatools' commands can't find the lua scripts. Well, I hypothesized that $LUAINPUTS might be wrong, so I tried this: LUAINPUTS=/usr/share/texmf-dist/scripts/context/lua luatools --generate And it seems to work. However: LUAINPUTS=/usr/share/texmf-dist/scripts/context/lua context --make .... resolvers | resolving | using given filetype 'tex' resolvers | resolving | remembering file 'cont-en.mkiv' resolvers | resolving | using given filetype 'tex' resolvers | resolving | remembering file 'cont-en.tex' resolvers | formats | no tex source file with name 'cont-en' (mkiv or tex) resolvers | formats | using format path '/var/cache/texmf/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/formats/luatex' resolvers | resolving | using given filetype 'tex' resolvers | resolving | remembering file 'cont-nl.mkiv' resolvers | resolving | using given filetype 'tex' resolvers | resolving | remembering file 'cont-nl.tex' resolvers | formats | no tex source file with name 'cont-nl' (mkiv or tex) system | total runtime: 0.239 So now the lua scripts are found, but the context macro files are not. At this point let me describe how my system is set up. As I said above, I'm attempting to use the ConTeXt that comes with TexLive. I've just upgraded TeXLive to the 2013 release, but that does not seem to affect these issues. Anyway, the executables are in /usr/bin; /usr/bin/mtxrun is the complete Lua script (i.e. not a symlink or any sort of stub), which appears to be identical to $TEXMF/scripts/context/stubs/unix/mtxrun. /usr/bin/luatools and /usr/bin/context also appear to be copies of their counterparts in the aforementioned stubs directory. The TeXLive packages for Arch provide the following trees: /usr/share/texmf /usr/share/texmf-dist /usr/share/texmf-config Almost everything important is now in /usr/share/texmf-dist, and there are no ConTeXt-related files in /usr/share/texmf. Accordingly, texmf.cnf contains the following definitions: TEXMFDIST = $TEXMFROOT/texmf-dist TEXMFMAIN = $TEXMFDIST TEXMFLOCAL = /usr/local/share/texmf;/usr/share/texmf So I have updated texmfcnf.lua to contain the following: TEXMFDIST = "selfautoparent:texmf-dist", TEXMFMAIN = "$TEXMFDIST", TEXMFLOCAL = "/usr{/local}/share/texmf", I'm not sure if that syntax is correct, but the definition of TEXMFLOCAL does not appear to affect the issues I'm concerned with here. Also, I should mention that my main reason for defining TEXMFLOCAL as I did (as well as TEXMFCACHE = /var/cache/texmf), is that I feel rather strongly (in keeping with what I understand to be 'Linux best practices') that files which are not managed by the Linux package manager should not be under /usr. But if by chance that is causing problems I don't absolutely have to do it that way. Anyway, somehow important files are not being found. Any suggestions? -- Matt Gushee
On 7/31/2013 10:51 PM, Matt Gushee wrote:
Once again I'm returning to ConTeXt after a long absence [maybe if I just kept using it I wouldn't have these problems?]. I'm trying to get started with MkIV; I don't feel a strong need to have the very latest code, so unless there are serious bugs, I want to use the version included with TexLive. At any rate, that's what I currently have and am trying to use. But I am running into issues with files not being found, e.g.:
as a start you could try the distribution from the garden; at least it's a good way to figure out if there is something fishy with your system there are fundamental differences between tl 2012 and tl 2013 .. did tl 2012 work ok?
Yes, I ran mtxrun --generate first, though I am a bit confused as to whether I need to run that *and* luatools --generate, or just one or the other. Anyway, mtxrun --generate appears to work:
luatools is not needed; mtxrun --generate does the job (and once you have context installed normally this is done automatically as is format generation) in the reported 'tree' files in the cache you can check if files like context.mkiv are present
This shows that mtxrun finds the correct configuration file--as far as I know, /usr/share/texmf-dist/web2c/texmfcnf.lua is the only instance of texmfcnf.lua on my system. And then it uses the value I have set in texmfcnf.lua to cache its output:
depending on the version of texlive texmf or texmf-dist is used for files you can run mtxrun --variables mtxrun --expansions to see if there are weird settings (maybe from env vars)
TEXMFCACHE = "/var/cache/texmf",
-- not used by context at all
TEXMFSYSVAR = "$TEXMFCACHE", TEXMFVAR = "$TEXMFCACHE",
So that's good. Yet the 'context' and 'luatools' commands can't find the lua scripts. Well, I hypothesized that $LUAINPUTS might be wrong, so I tried this:
messing with LUAINPUTS should not be needed
LUAINPUTS=/usr/share/texmf-dist/scripts/context/lua luatools --generate
And it seems to work. However:
LUAINPUTS=/usr/share/texmf-dist/scripts/context/lua context --make ..... resolvers | resolving | using given filetype 'tex' resolvers | resolving | remembering file 'cont-en.mkiv' resolvers | resolving | using given filetype 'tex' resolvers | resolving | remembering file 'cont-en.tex' resolvers | formats | no tex source file with name 'cont-en' (mkiv or tex) resolvers | formats | using format path '/var/cache/texmf/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/formats/luatex' resolvers | resolving | using given filetype 'tex' resolvers | resolving | remembering file 'cont-nl.mkiv' resolvers | resolving | using given filetype 'tex' resolvers | resolving | remembering file 'cont-nl.tex' resolvers | formats | no tex source file with name 'cont-nl' (mkiv or tex) system | total runtime: 0.239
so no file database is present or the database has not all files
So now the lua scripts are found, but the context macro files are not.
At this point let me describe how my system is set up. As I said above, I'm attempting to use the ConTeXt that comes with TexLive. I've just upgraded TeXLive to the 2013 release, but that does not seem to affect these issues. Anyway, the executables are in /usr/bin; /usr/bin/mtxrun is the complete Lua script (i.e. not a symlink or any sort of stub), which appears to be identical to $TEXMF/scripts/context/stubs/unix/mtxrun. /usr/bin/luatools and /usr/bin/context also appear to be copies of their counterparts in the aforementioned stubs directory.
upgrading texlive means wiping out the old one .. maybe there are traces of older texlives? maybe in some local texmf tree in home?
The TeXLive packages for Arch provide the following trees:
/usr/share/texmf /usr/share/texmf-dist /usr/share/texmf-config
Almost everything important is now in /usr/share/texmf-dist, and there are no ConTeXt-related files in /usr/share/texmf. Accordingly, texmf.cnf contains the following definitions:
TEXMFDIST = $TEXMFROOT/texmf-dist TEXMFMAIN = $TEXMFDIST TEXMFLOCAL = /usr/local/share/texmf;/usr/share/texmf
So I have updated texmfcnf.lua to contain the following:
TEXMFDIST = "selfautoparent:texmf-dist", TEXMFMAIN = "$TEXMFDIST", TEXMFLOCAL = "/usr{/local}/share/texmf",
texmflocal is normally not used (afaik) it could relate to the texmf/texmf-dist changes (although we made sure that we adapted the scripts etc to support that rather fundamental change in texlive 2013)
I'm not sure if that syntax is correct, but the definition of TEXMFLOCAL does not appear to affect the issues I'm concerned with here. Also, I should mention that my main reason for defining
indeed (in the garden distribution we also have trees like texmf-context for context, texmf-fonts for user fonts, texmf-project for project specific files, while texmf-local is only used for persistent local overloads
TEXMFLOCAL as I did (as well as TEXMFCACHE = /var/cache/texmf), is that I feel rather strongly (in keeping with what I understand to be 'Linux best practices') that files which are not managed by the Linux package manager should not be under /usr. But if by chance that is causing problems I don't absolutely have to do it that way.
Anyway, somehow important files are not being found. Any suggestions?
does arch-linux use stock texlive or do they adapt it Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Thanks, Hans ...
On Wed, Jul 31, 2013 at 3:32 PM, Hans Hagen
On 7/31/2013 10:51 PM, Matt Gushee wrote:
code, so unless there are serious bugs, I want to use the version included with TexLive. At any rate, that's what I currently have and am trying to use. But I am running into issues with files not being found, e.g.:
as a start you could try the distribution from the garden; at least it's a good way to figure out if there is something fishy with your system
Okay, I've installed that, and it works fine ... though I had a small glitch along the way that gives me an idea about what the problem may be with the TeXLive version. More about that below.
in the reported 'tree' files in the cache you can check if files like context.mkiv are present
They weren't.
mtxrun --variables mtxrun --expansions
Actually, I had already tried that, but I didn't fully understand the output. Here's an example: resolvers | lists | LUAINPUTS resolvers | lists | env: unset resolvers | lists | var: .;$TEXINPUTS;$TEXMF/scripts/context/lua// resolvers | lists | exp: .;.;{home:texmf,!!selfautoparent:texmf-project,!!selfautoparent:texmf-fonts,!!/usr{/local}/share/texmf,!!selfautoparent:texmf-context,!!selfautoparent:texmf-linux,!!selfautoparent:texmf-dist,!!selfautoparent:texmf-dist}/tex/{context,plain/base,generic}//;{home:texmf,!!selfautoparent:texmf-project,!!selfautoparent:texmf-fonts,!!/usr{/local}/share/texmf,!!selfautoparent:texmf-context,!!selfautoparent:texmf-linux,!!selfautoparent:texmf-dist,!!selfautoparent:texmf-dist}/scripts/context/lua// resolvers | lists | res: .;.;{/home/matt/texmf,!!./texmf-project,!!./texmf-fonts,!!/usr{/local}/share/texmf,!!./texmf-context,!!./texmf-linux,!!./texmf-dist,!!./texmf-dist}/tex/{context,plain/base,generic}//;{/home/matt/texmf,!!./texmf-project,!!./texmf-fonts,!!/usr{/local}/share/texmf,!!./texmf-context,!!./texmf-linux,!!./texmf-dist,!!./texmf-dist}/scripts/context/lua/ Are the 'selfautoparent' references supposed to be resolved to specific paths? If so, it certainly appears something was wrong here.
so no file database is present or the database has not all files
It was the latter, I suspect due to incorrect path settings in the config file.
does arch-linux use stock texlive or do they adapt it
There are a few, seemingly minor tweaks. There are three patches, all for luatex: poppler-0.20.patch fix-fontforge-encoding.patch luatex-r4449-radical-rule-thickness.patch However, these all seem to deal with small graphics/fonts issues and have no apparent relationship to finding files. There is also a customized texmf.cnf, but NOT a customized texmfcnf.lua. I think that's significant. I said above that I ran into a minor problem when I installed the Contextgarden package. What happened was that I saw two ../bin directories: /opt/context/bin and /opt/context/tex/texmf-linux/bin . At first I thought /opt/context/bin was meant to be used, so I added both directories to my PATH [/opt/context/bin was first]. But that produced errors. Then I removed /opt/context/bin from PATH, and everything was fine. So I think I see what's going on: since many of the path settings in texmfcnf.lua use 'selfauto*' variables, and correct resolution of those depends on where the executables are located. So I suspect that the default config file that comes with ConTeXt in TeXLive assumes that the executables are ... I'm not sure where, but somewhere other than /usr/bin . I could probably fix that, but it would take me a while to figure out the correct values. Anyway, at this point I'm seriously thinking about just forgetting TeXLive and using the standalone ConTeXt package. I doubt I'll be using any other TeX packages in the near future, and I'd rather spend time creating documents than tinkering with config files. Is there anything in TeXLive that's particularly useful with ConTeXt, that is not included in the ConTeXt package? Anyway, many thanks for your prompt attention! -- Matt Gushee
On Wed, 31 Jul 2013, Matt Gushee wrote:
Anyway, at this point I'm seriously thinking about just forgetting TeXLive and using the standalone ConTeXt package.
You can also try the context-minimals-git package from AUR. It installs context minimals at /opt/context-minimal/, works in parallel with TL, and has the advantage that it can be removed using the package manager. Aditya
On 8/1/2013 5:59 AM, Matt Gushee wrote:
Thanks, Hans ...
On Wed, Jul 31, 2013 at 3:32 PM, Hans Hagen
wrote: On 7/31/2013 10:51 PM, Matt Gushee wrote:
code, so unless there are serious bugs, I want to use the version included with TexLive. At any rate, that's what I currently have and am trying to use. But I am running into issues with files not being found, e.g.:
as a start you could try the distribution from the garden; at least it's a good way to figure out if there is something fishy with your system
Okay, I've installed that, and it works fine ... though I had a small glitch along the way that gives me an idea about what the problem may be with the TeXLive version. More about that below.
in the reported 'tree' files in the cache you can check if files like context.mkiv are present
They weren't.
mtxrun --variables mtxrun --expansions
Actually, I had already tried that, but I didn't fully understand the output. Here's an example:
resolvers | lists | LUAINPUTS resolvers | lists | env: unset resolvers | lists | var: .;$TEXINPUTS;$TEXMF/scripts/context/lua// resolvers | lists | exp: ..;.;{home:texmf,!!selfautoparent:texmf-project,!!selfautoparent:texmf-fonts,!!/usr{/local}/share/texmf,!!selfautoparent:texmf-context,!!selfautoparent:texmf-linux,!!selfautoparent:texmf-dist,!!selfautoparent:texmf-dist}/tex/{context,plain/base,generic}//;{home:texmf,!!selfautoparent:texmf-project,!!selfautoparent:texmf-fonts,!!/usr{/local}/share/texmf,!!selfautoparent:texmf-context,!!selfautoparent:texmf-linux,!!selfautoparent:texmf-dist,!!selfautoparent:texmf-dist}/scripts/context/lua// resolvers | lists | res: ..;.;{/home/matt/texmf,!!./texmf-project,!!./texmf-fonts,!!/usr{/local}/share/texmf,!!./texmf-context,!!./texmf-linux,!!./texmf-dist,!!./texmf-dist}/tex/{context,plain/base,generic}//;{/home/matt/texmf,!!./texmf-project,!!./texmf-fonts,!!/usr{/local}/share/texmf,!!./texmf-context,!!./texmf-linux,!!./texmf-dist,!!./texmf-dist}/scripts/context/lua/
Are the 'selfautoparent' references supposed to be resolved to specific paths? If so, it certainly appears something was wrong here.
indeed. these prefixes make trees and setups relocatable
so no file database is present or the database has not all files
It was the latter, I suspect due to incorrect path settings in the config file.
does arch-linux use stock texlive or do they adapt it
There are a few, seemingly minor tweaks. There are three patches, all for luatex:
poppler-0.20.patch fix-fontforge-encoding.patch luatex-r4449-radical-rule-thickness.patch
However, these all seem to deal with small graphics/fonts issues and have no apparent relationship to finding files. There is also a customized texmf.cnf, but NOT a customized texmfcnf.lua. I think that's significant.
ok, so maybe there's a difference there
I said above that I ran into a minor problem when I installed the Contextgarden package. What happened was that I saw two ../bin directories: /opt/context/bin and /opt/context/tex/texmf-linux/bin . At first I thought /opt/context/bin was meant to be used, so I added both directories to my PATH [/opt/context/bin was first]. But that produced errors. Then I removed /opt/context/bin from PATH, and everything was fine. So I think I see what's going on: since many of the path settings in texmfcnf.lua use 'selfauto*' variables, and correct resolution of those depends on where the executables are located. So I suspect that the default config file that comes with ConTeXt in TeXLive assumes that the executables are ... I'm not sure where, but somewhere other than /usr/bin . I could probably fix that, but it would take me a while to figure out the correct values.
the opt/context/bin path is used by the first-setup script (that also does updates) so it should not be in the PATH variable
Anyway, at this point I'm seriously thinking about just forgetting TeXLive and using the standalone ConTeXt package. I doubt I'll be using any other TeX packages in the near future, and I'd rather spend time creating documents than tinkering with config files. Is there anything in TeXLive that's particularly useful with ConTeXt, that is not included in the ConTeXt package?
the garden distribution is the most complete (although tex live has complete snapshots and can be updated too) ... the advantage of the garden distribution is that you also get the most relevant fonts installed if you only use mkiv (luatex) then you can do an initial install with --engine=luatex and you get less files (it must be done when installing so that updating also uses this minimal setting; pdftex has many -small- font files and xetex big binaries) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 2013–07–31 Matt Gushee wrote:
Once again I'm returning to ConTeXt after a long absence [maybe if I just kept using it I wouldn't have these problems?]. I'm trying to get started with MkIV; I don't feel a strong need to have the very latest code, so unless there are serious bugs, I want to use the version included with TexLive. At any rate, that's what I currently have and am trying to use. But I am running into issues with files not being found, e.g.:
ConTeXt works out-of-the-box with TeXLive 2013. You can try a clean install from http://tug.org/texlive (into a separate directory) and check if that works. Marco
participants (4)
-
Aditya Mahajan
-
Hans Hagen
-
Marco Patzer
-
Matt Gushee