tar failure

Karl Berry karl at freefriends.org
Wed Oct 6 23:27:20 CEST 2021

    Can't exec "tar": Argument list too long at
    /usr/local/texlive/2021/tlpkg/TeXLive/TLUtils.pm line 686.
    system(tar -cf /usr/local/texlive/2021/tlpkg/backups/noto.r54512.tar
      texmf-dist/doc/fonts/noto texmf-dist/fonts/enc/dvips/noto/nto_2banio.enc

First, another workaround: turn off backups
  tlmgr option autobackup -- -1
do the update, turn backups back on (if desired).
I believe the error is happening doing the backup of the existing
noto package.

Anyway, the error is puzzling in a couple of different ways. For one,
since this failed for the OP on Macs, why didn't it fail for everyone on
Macs, for weeks now?  Noto was updated on Sept 13. I doubt everyone else
in the world has turned off backups. And yet we have received no other
reports. Presumably this person did not somehow reduce the arg max or
some other strange system setting. (This error comes from the kernel,
not tar.)

For two, there is code in TLPOBJ.pm for precisely this problem, which we
first ran into many years ago:

    # Therefore, if the command is likely to be too long, we call
    # our collapse_dirs routine; in practice, this eliminates
    # essentially all the individual files, leaving just a few
    # directories, which is no problem.  (For example, tex4ht collapses
    # down to five directories and one file.)
    if (length ("@files_to_backup") > 50000) {
      @files_to_backup = TeXLive::TLUtils::collapse_dirs(@files_to_backup);

The result should be that tar gets called with a few directories, like
not zillions of individual files like 

And it looks like collapse_dirs did its job with the doc files, since
is the first arg (not individual doc/* files).

All I can think of is that if there are stray files in the OP's noto
subdirectories which are not part of the package. That would stop
collapse_dirs from in fact collapsing most of the directories.

In particular, maybe the OP installed one of the attempts at the new
noto-condensed pcakage from tlcontrib, which I think also installed in
noto/ subdirectories in one of its incarnations (but not any more).

In which case the right fix is simply to (re)move the existing noto/
dirs and then do the update, as in:

 cd /usr/local/texlive/2021/texmf-dist
 dirs=`find -name noto -type d`
 tar cf notobackup.tar $dirs
 rm -rf $dirs
 tlmgr update noto
The directories returned by the find should be:
 fonts/enc/dvips/noto fonts/map/dvips/noto fonts/tfm/google/noto
 fonts/truetype/google/noto fonts/type1/google/noto fonts/vf/google/noto

Hope something in there helps the OP ... -k

More information about the tex-live mailing list.