TL 2023 update-tlmgr-latest.sh under Docker fails

Julien Dutant julien.dutant at gmail.com
Wed Mar 22 19:39:09 CET 2023


Thanks Lars. I do understand the first error: the “local” Tex Live is older than the repository. That is because the repository has moved on to 2023, while my “local” installation is still in 2022.

So, I should update the local installation, right? The problem is that this installation isn’t on my computer. It’s in an “Docker image”, which is an image of a virtual Linux machine with TexLive 2022 installed. I have to use it (no matter why), can’t go around that. However, I can do some things within it. For instance, I can launch update scripts, or set the tlmgr repository.

Above I’ve detailed how I tried two solutions. One is to do a minimal update with update-tlgmr-latest.sh . The other is to set up a historic repo. Each gives me an error (neither of which is about the local tex live being older than the remote repository.)

In short, this is as if I’m given a new machine with Alpine Linux and TexLive 2022 installed. I would like to install a couple of packages, but I’d very much NOT erase the TL 2022 and reinstall the whole 2023 (in fact, I practically can’t).

Any pointers welcome…
--
Julien Dutant
http://julien.dutant.free.fr/<http://julien.dutant.free.fr/en/>
https://github.com/jdutant


From: Lars Madsen <daleif at math.au.dk>
Date: Wednesday, 22 March 2023 at 17:08
To: Julien Dutant <julien.dutant at gmail.com>, tex-live at tug.org <tex-live at tug.org>
Subject: Re: TL 2023 update-tlmgr-latest.sh under Docker fails
The installation in your docker image is using TeXLive 2022. It is now frosen and cannot be updated.


tlmgr: Local TeX Live (2022) is older than remote repository (2023).​

says it all



Lars Madsen
Programmør

Institut for Matematik
Aarhus Universitet

person.au.dk/daleif at math<https://person.au.dk/daleif@math>

________________________________
From: tex-live <tex-live-bounces+daleif=imf.au.dk at tug.org> on behalf of Julien Dutant <julien.dutant at gmail.com>
Sent: 22 March 2023 17:38
To: tex-live at tug.org <tex-live at tug.org>
Subject: TL 2023 update-tlmgr-latest.sh under Docker fails

Hi all,

I'm having a problem running or updating a docker image containing TexLive 2022.

I'm running a docker image using TexLive 2022, pandoc/latex<https://hub.docker.com/r/pandoc/latex>, on a server (GitHub actions). It worked until recently, but with the 2023 I get an error when I try to install packages within the image:

RUN tlmgr update --self --all \
    && tlmgr install dvisvgm

tlmgr: Local TeX Live (2022) is older than remote repository (2023).
Cross release updates are only supported with
  update-tlmgr-latest(.sh/.exe) --update
See https://tug.org/texlive/upgrade.html for details.

The pandoc/latex<https://hub.docker.com/r/pandoc/latex> Dockerfile is complex and I'd rather not rewrite it to use TexLive 2023. (Hopefully its authors update it soon.) I've tried instead to run the instructions Upgrade - TeX Live - TeX Users Group (tug.org)<https://tug.org/texlive/upgrade.html> to run the update-tlmgr-latest.sh script within the image. I'm getting the following error:

Verifying archive integrity... All good.
Uncompressing TeX Live Manager Updater  100%
./runme.sh: updating in /opt/texlive/texdir...
./runme.sh: tlmgr version says this is TeX Live 2022,
./runme.sh: and this updater script created: Mon Mar 13 23:19:59 CET 2023.
./runme.sh: proceeding with tlmgr update.
./runme.sh: updating /opt/texlive/texdir/bin/default ...
tar: default: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
./runme.sh: no xz.[default][.exe] binary for /opt/texlive/texdir/bin/default in /tmp/selfgz116956/installer/xz.

Worth noting: within the image (an Alpine Linux), TeXLive is located at/opt/texlive. I haven't tried to move to /usr/local/texlive/2023/and updating PATH. Would that help?

MWE: Save the following as Dockerfile in some folder. Run `docker build .` (don't forget the dot, run this in the same folder as the Dockerfile). Note that the image only works on x86-64 architectures (i.e. Intel/AMD, not Apple Silicon).

# Dockerfile
FROM pandoc/latex:latest
# Install wget and bash, download update-tlmgr-latest.sh and run it
RUN apk add wget bash \
    && wget -O update-tlmgr-latest.sh https://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh \
    && bash update-tlmgr-latest.sh
# If this worked, we would then update and install a couple of packages
RUN tlmgr update --self --all \
    && luaotfload-tool -fu \
    && tlmgr install \
    standalone \
    dvisvgm
ENTRYPOINT [ "/usr/local/bin/pandoc" ]

I've also looked at changing the repository to a historic 2022 repository. I've tried the following:

FROM pandoc/latex:latest
# Try to use the 2022 repo
RUN tlmgr option repository https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2022/
# If this worked, we would then update and install a couple of packages
RUN tlmgr update --self --all \
    && tlmgr install \
    standalone \
    dvisvgm
ENTRYPOINT [ "/usr/local/bin/pandoc" ]

But I get an error because the historic repo doesn't have a `tlpkg` folder:

/opt/texlive/texdir/bin/default/tlmgr: TLPDB::from_file could not initialize from: https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2022//tlpkg/texlive.tlpdb<https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2022/tlpkg/texlive.tlpdb>
/opt/texlive/texdir/bin/default/tlmgr: Maybe the repository setting should be changed.

Any help welcome. I just need to be able to use tlmgr-install to install a couple of packages within a TeXLive 2022 docker image, any workaround will do.

--

julien dutant

Department of Philosophy, King's College London
julien.dutant at kcl.ac.uk<mailto:julien.dutant at kcl.ac.uk>

http://julien.dutant.free.fr/

Strand

London WC2R 2LS

United Kingdom
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://tug.org/pipermail/tex-live/attachments/20230322/e2f94169/attachment-0001.html>


More information about the tex-live mailing list.