TeX Live Utility (MacTeX) critical update failure
Bruno Voisin
bvoisin at icloud.com
Mon Nov 20 10:21:41 CET 2023
> On 18 Nov 2023, at 16:38, William L. Kath <kath at northwestern.edu> wrote:
>
> Thanks for the explanations and advice. Indeed, executing
>
> sudo tlmgr update --self
>
> at the command line was sufficient to perform the infrastructure update. And after that, as Bruno indicated, TLU offers the standard list of updates.
For people who looked at this thread, some explanation now that the matter is solved.
The problem was with the recovery script update-tlmgr-latest.sh, which TeX Live Utility on the Mac uses to apply infrastructure updates (rather than running "tlmgr update --self").
The script is a self-extracting archive. This archive contained duplicates, namely files together with hard links to these files in the same directory. For example
% ./update-tlmgr-latest.sh --list
[...]
drwxr-xr-x karl/root 0 2023-11-16 02:12 ./master/tlpkg/installer/xz/
-rwxr-xr-x karl/root 191176 2021-02-26 00:07 ./master/tlpkg/installer/xz/xz.aarch64-linux
[...]
hrwxr-xr-x karl/root 0 2021-02-26 00:07 ./master/tlpkg/installer/xz/xz.aarch64-linux link to ./master/tlpkg/installer/xz/xz.aarch64-linux
[...]
The archive is extracted with tar. On Linux gnutar is used, which has no problem with the duplicates. On macOS bsdtar is used, a functionally equivalent implementation of tar based on libarchive. It can't deal with the duplicates, and extraction of the archive failed. Hence the problem with TLU.
The occurrence of the hard links was caused by version 2.4.2 of makeself, the tool that is used to create update-tlmgr-latest.sh. This version has a bug, leading to the creation of the hard links:
https://github.com/megastep/makeself/issues/214
Karl solved the problem by installing the current version 2.5.0 of makeself on the TUG servers. I can confirm that the updated version of the script
https://tug.org/texlive/tlcritical/update-tlmgr-r68903.sh
runs OK on the Mac while the previous version
http://mirrors.ctan.org/systems/texlive/tlnet/update-tlmgr-r68866.sh
didn't.
Bruno Voisin
More information about the tex-live
mailing list.