problem with kpsewhich on 2023 binary from 20240218

Ken Moffat zarniwhoop at ntlworld.com
Mon Feb 19 22:24:51 CET 2024


I've got what seems to me to be a weird problem.  Testing the binary
install of TL23 to confirm the instructions before the BLFS release.
I install in /opt/texlive/20?? and make sure I have only one year.

In ~/.bashrc I fix things up:

if [ -f /opt/texlive/20*/bin/*/pdflatex ]; then
        MYTEXES=$(ls -d /opt/texlive/20*/bin/*)
        MYTEXMF=$(ls -d /opt/texlive/20*/texmf-dist/doc)
fi
if [ -n "$MYTEXES" ]; then
        echo $PATH | grep "$MYTEXES" >/dev/null || PATH=$PATH:$MYTEXES
        export PATH
        export MANPATH=/usr/share/man:$MYTEXMF/man
        export INFOPATH=/usr/share/info:$MYTEXMF/info
        export TEXMFCNF=/opt/texlive/20*/texmf-dist/web2c
fi

And those four exports are set to

/bin:/opt/kde5/bin:/opt/qt5/bin:/bin:/usr/bin:/opt/texlive/2023/bin/x86_64-linux
/usr/share/man:/opt/texlive/2023/texmf-dist/doc/man
/usr/share/info:/opt/texlive/2023/texmf-dist/doc/info
/opt/texlive/2023/texmf-dist/web2c

which all seem reasonable.

But for my tests I look for some sty files to try to detrmine which
of my tests I can run on this install (might be a full install, or
something smaller).  And those attempts to find the sty files are all
failing, with messages like:

testing for babel ... warning: kpathsea: configuration file texmf.cnf not found in these directories: /opt/texlive/20*/texmf-dist/web2c

(each shows '20*' instead of the expected 2023.)

$ ls -l /opt/texlive/2023/texmf-dist/web2c/texmf.cnf 
-rw-r--r-- 1 root root 41009 Oct 11 21:52 /opt/texlive/2023/texmf-dist/web2c/texmf.cnf

So texmf.cnf is where I expect it, but not found with what I guess
might be a shell-related (bash) issue.

If I try strace, the relevant part is

stat("/bin/kpsewhich", 0x7fff9c88f2d0)  = -1 ENOENT (No such file or directory)
stat("/opt/kde5/bin/kpsewhich", 0x7fff9c88f2d0) = -1 ENOENT (No such file or directory)
stat("/opt/qt5/bin/kpsewhich", 0x7fff9c88f2d0) = -1 ENOENT (No such file or directory)
stat("/bin/kpsewhich", 0x7fff9c88f2d0)  = -1 ENOENT (No such file or directory)
stat("/usr/bin/kpsewhich", 0x7fff9c88f2d0) = -1 ENOENT (No such file or directory)
stat("/opt/texlive/2023/bin/x86_64-linux/kpsewhich", {st_mode=S_IFREG|0755, st_size=93784, ...}) = 0
                   ^^^^ OK HERE for finding kpsewhich  
lstat("/opt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/opt/texlive", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/opt/texlive/2023", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/opt/texlive/2023/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/opt/texlive/2023/bin/x86_64-linux", {st_mode=S_IFDIR|0755, st_size=16384, ...}) = 0
lstat("/opt/texlive/2023/bin/x86_64-linux/kpsewhich", {st_mode=S_IFREG|0755, st_size=93784, ...}) = 0
stat("/opt/texlive/20*/texmf-dist/web2c", 0x7fff9c88f040) = -1 ENOENT (No such file or directory)
write(2, "warning: ", 9warning: )                = 9
write(2, "kpathsea: configuration file tex"..., 104kpathsea: configuration file texmf.cnf not found in these directories: /opt/texlive/20*/texmf-dist/web2c) = 104
                                  ^^^^ But NOT OK here
write(2, ".\n", 2.
)                      = 2

I assume this is something I've done (it worked in August), but I've
no idea what.  Any ideas, please ?

ĸen
-- 
If a core hits a turbo frequency but you are unable to detect it,
does that count ?    -- Anandtech


More information about the tex-live mailing list.