Arch Linux GnuPG Broken Since Readline Upgrade – Can’t Find libreadline.so.6

arch linuxgnupgreadline

I've just upgraded readline to a new major release:

$ grep readline.*7 /var/log/pacman.log 
[2016-11-15 21:53] [ALPM] upgraded readline (6.3.008-4 -> 7.0-1)

Since this GNUPG is broken:

$ gpg 
gpg: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory

That also means I can't upgrade any packages. How do I safely fix my installation?

What I've tried so far to downgrade readline:

  • The package is not in /var/cache/pacman/pkg
  • Building from the previous PKGBUILD failed because it doesn't bootstrap itself – it relies on awk which is also missing libreadline.so.6.

Best Answer

This has been reported to Arch here.

The workaround is to run

mkinitcpio -P

after the upgrade has completed, but before rebooting.

If you've rebooted before re-running mkinitcpio, then you'll need to boot off e.g. a USB key and run the mkinitcpio from the chroot. The easiest is to use arch-chroot as in the Arch install instructions.

I haven't had a chance to test this method in this particular case, however have done so in the past.

Related Question