On Mon, Jun 12, 2023 at 09:45:15AM -0400, Greg Wooledge wrote: > I think I might try grabbing an older-than-buster version of debootstrap > out of snapshot.debian.org and see if I can manage to reproduce something. > But don't count on my success.
I've succeeded in *partially* reproducing this error, but not fully. My resulting state simply has usrmerge failing with the OP's error message, and each subsequent instance of /usr/lib/usrmerge/convert-usrmerge giving the same error again. I do not get the GLIBC errors, nor do I get an unusable system. Here's what I did: 1) Start from my bookworm amd64 system. 2) Install bullseye using debootstrap into /stuff/bullseye-base. 3) Copy that directory to /stuff/bullseye-with-old-debootstrap. 4) Chroot into bullseye-with-old-debootstrap and apt-get install debootstrap. 5) Download http://snapshot.debian.org/archive/debian/20180603T165432Z/pool/main/d/debootstrap/debootstrap_1.0.101_all.deb from outside the chroot. 6) Chroot into bullseye-with-old-debootstrap and dpkg -i debootstrap_1.0.101_all.deb 7) Chroot into bullseye-with-old-debootstrap and debootstrap bullseye into /bullseye2. 8) Move bullseye-with-old-debootstrap/bullseye2 to /stuff/bullseye-unmerged. 9) Verify that bullseye-unmerged has separate /bin and /lib directories. 10) Copy /stuff/bullseye-unmerged to /stuff/bullseye-upgrade-test. 11) Chroot into bullseye-upgrade-test and copy /lib/x86_64-linux-gnu/libz.so.1.2.11 to /usr/lib/x86_64-linux-gnu/ and make /usr/lib/x86_64-linux-gnu/libz.so.1 -> libz.so.1.2.11 12) Chroot into bullseye-upgrade-test and edit sources.list and apt-get update and apt-get install usrmerge. And the resulting output: =========================================================================== [...] Setting up usrmerge (35) ... FATAL ERROR: Both /lib/x86_64-linux-gnu/libz.so.1.2.11 and /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 exist. You can try correcting the errors reported and running again /usr/lib/usrmerge/convert-usrmerge until it will complete without errors. Do not install or update other Debian packages until the program has been run successfully. E: usrmerge failed. dpkg: error processing package usrmerge (--configure): installed usrmerge package post-installation script subprocess returned error exit status 1 Processing triggers for libc-bin (2.36-9) ... Errors were encountered while processing: usrmerge E: Sub-process /usr/bin/dpkg returned an error code (1) root@unicorn:/# perl -e 'print "hello world\n"' perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_TIME = "C", LANG = "en_US.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). hello world root@unicorn:/# /usr/lib/usrmerge/convert-usrmerge perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_TIME = "C", LANG = "en_US.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). FATAL ERROR: Both /lib/x86_64-linux-gnu/libz.so.1.2.11 and /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 exist. You can try correcting the errors reported and running again /usr/lib/usrmerge/convert-usrmerge until it will complete without errors. Do not install or update other Debian packages until the program has been run successfully. root@unicorn:/# perl -e 'print "hello world\n"' perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_TIME = "C", LANG = "en_US.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). hello world root@unicorn:/# /usr/lib/usrmerge/convert-usrmerge perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_TIME = "C", LANG = "en_US.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). FATAL ERROR: Both /lib/x86_64-linux-gnu/libz.so.1.2.11 and /usr/lib/x86_64-linux-gnu/libz.so.1.2.11 exist. You can try correcting the errors reported and running again /usr/lib/usrmerge/convert-usrmerge until it will complete without errors. Do not install or update other Debian packages until the program has been run successfully. root@unicorn:/# =========================================================================== The minimal debootstrap system has libidn2 (which is in /usr/lib/x*) but not libidn, so I wasn't able to reproduce the OP's setup faithfully. I figured using a copy of libz (which is in /lib/x*) might suffice. Has anyone else ever run into this before, or have any insight into how the OP's system became unusable as a result?