> Back to your snippet — if you still think it's worth trying (to see if > it gets rid of the ENOENTs), I'll try it and report later. Starting from guix 3bb3fddb5c6e79056172e5858cdc0ee0b6b8cfaa, I tried adding this --8<---------------cut here---------------start------------->8--- #:phases #~(modify-phases %standard-phases (add-after 'install 'customize-texmfcnf.lua (lambda _ (substitute* (string-append #$output "/share/texmf-dist/web2c/texmfcnf.lua") (("selfautodir:") #$output) (("selfautoparent:") (string-append #$output "/share/")))))))) --8<---------------cut here---------------end--------------->8--- to `texlive-luatex` as suggested. I verified manually that the file in the resulting package actually got the paths substituted. I then ran --8<---------------cut here---------------start------------->8--- guix shell -D guix -- path/to/pre-inst-env guix shell texlive-collection-latex less coreutils grep findutils which strace -C strace lualatex minimal.tex > strace.txt 2>&1 grep -E 'lualatexquotejobname.*ENOENT' strace.txt | wc -l --8<---------------cut here---------------end--------------->8--- and got 9138