You are not logged in.
I was away from my machine for a while and did a system upgrade this morning. A lot of packages, like I'd expect and then halfway through I started getting messages about libgcrypt and invalid GPG engines. Anyway, long story short, my system is crippled due to everything being up to date except libgcrypt which is version 1.5.3-1 and pacman refuses to update it due to GPG errors (go figure).
The deets are as follows:
When I try and run a bunch of commands on my computer, I get a libgcrypt error such as this one:
# sudo halt
halt: error while loading shared libraries: libgcrypt.so.20: cannot open shared object file: No such file or directory
When I try to (forcefully) upgrade libgcrypt, I get the following:
# sudo pacman -S --force libgcrypt 1
resolving dependencies...
looking for inter-conflicts...
Packages (1): libgcrypt-1.6.0-1
Total Installed Size: 1.09 MiB
Net Upgrade Size: 0.38 MiB
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [########################################################] 100%
error: GPGME error: Invalid crypto engine
(1/1) checking package integrity [########################################################] 100%
error: GPGME error: Invalid crypto engine
error: libgcrypt: missing required signature
:: File /var/cache/pacman/pkg/libgcrypt-1.6.0-1-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n]
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.
So, I'm not sure what's going on here, but it seems to me that libgcrypt needs to be upgraded for pacman to upgrade libgcrypt. Can someone please help?
Last edited by vlsd (2014-01-13 19:09:19)
Offline
If you're sure the package you downloaded is good, I would try simply disabling sig checking in pacman.conf, SigLevel=Never. Don't forget to change it back after you upgrade libgcrypt.
Last edited by Scimmia (2014-01-13 18:07:20)
Online
If you're sure the package you downloaded is good, I would try simply disabling sig checking in pacman.conf, SigLevel=Never. Don't forget to change it back after you upgrade libgcrypt.
Yes this works - though is this now also related to the kernel not booting after updating before libgcrypt was updated? Or is that a separate issue?
Last edited by mcloaked (2014-01-13 18:34:58)
Mike C
Offline
It could be, you said the error was something about encryption.
Online
If you're sure the package you downloaded is good, I would try simply disabling sig checking in pacman.conf, SigLevel=Never. Don't forget to change it back after you upgrade libgcrypt.
This fixed my problem. Thank you!
Offline
Scimmia wrote:If you're sure the package you downloaded is good, I would try simply disabling sig checking in pacman.conf, SigLevel=Never. Don't forget to change it back after you upgrade libgcrypt.
Yes this works - though is this now also related to the kernel not booting after updating before libgcrypt was updated? Or is that a separate issue?
Should I be worried about booting my new kernel after the update?
Offline
I had the same problem and so I chrooted into my system with Arch USB media, disabled the signature check in pacman (SigLevel = Never in /etc/pacman.conf), run pacman -Syu and finally pacman-key --init. This seems to solve the problem for most of the people.
For me, my dm-crypt+LUKS encrypted root partition was still unable to be mounted correctly, but that was fixed with a basic mkinitcpio -p linux.
P.S. Special thanks to jordicoma and luigi at #archlinux for helping out with this!
Last edited by Maty (2014-01-13 19:25:38)
Offline
If you're going to boot from an install disk/USB anyway, "pacman --root <mountpoint> -Syu" would be preferred since that doesn't skip the signature check.
Online
Thank you all very much for this thread!
I love archlinux: the last STABLE kernel release + the last STABLE DE release + the last STABLE apps releases. The upstream developers decide what is STABLE.
Offline
mcloaked wrote:Scimmia wrote:If you're sure the package you downloaded is good, I would try simply disabling sig checking in pacman.conf, SigLevel=Never. Don't forget to change it back after you upgrade libgcrypt.
Yes this works - though is this now also related to the kernel not booting after updating before libgcrypt was updated? Or is that a separate issue?
Should I be worried about booting my new kernel after the update?
See my post at https://bbs.archlinux.org/viewtopic.php … 4#p1370454
Mike C
Offline
Thanks for this. It looks like my mirror was out of sync and libgrcypt 1.5.3 was only available in core (as mentioned here). I had to grab 1.6 from the testing repository.
Also, another side note: For anyone still running systemd 204 or 205 (for systemd --user reasons) you will need to keep the /usr/lib/libgcrypt.so.11 blob since it seems to depend on it. Just another little push towards the edge for getting systemd --user 208 working the way I want.
Offline
Thanks for this hint. But I had an additional problem.
I'm using xorg-server-1.11.4-2, which requires libgcrypt version < 1.6. It's because I've installed catalyst-total-hd234k (legacy ati/amd drivers).
The solution is to manually grab a copy of e.g. /usr/lib/libgcrypt.so.11.8.2 before updating libgcrypt.
Afterwards move saved libgcrypt.so.11.8.2 to /usr/lib/ and create a symbolic link to it named libgcrypt.so.11
Xorg111 is running well again.
JD
Offline
Untracked files in /usr/lib is not the answer, rebuilding the version of xorg you need against the new library is.
A wrong solution, but less wrong than what you're doing, is to use the libgcrypt15 package in the AUR.
Online
@Scimmia
I knew it was a dirty fix. Thanks for your advice.
Maybe I'll rebuild xorg111 by myself later. I have no experiences in compiling against something.
Offline