Обновление до Ubuntu 22.04 приводит к ошибкам libcrypto, apt/dpkg не работает

Обновление до Ubuntu 22.04 приводит к ошибкам libcrypto, apt/dpkg не работает

Я использую Ubuntu 22.04 (Jammy Jellyfish) и сегодня обновился с 21.10. Моя машина — Asus Vivobook K3500PH с процессором Intel i7 11-го поколения и видеокартой Nvidia GTX 1650 Max-Q. Изначально в моей системе было ядро ​​Linux 5.15, которое недавно было обновлено с ядра 5.13.

EDIT: Эта тема также актуальна для тех, кто не устанавливал новое ядро, а обновился до Ubuntu 22.04.

Справочная информация

Из-за проблем с драйвером Wi-Fi я хотел бы обновить ядро ​​Linux до последней версии, которая актуальна 5.17.4на момент написания статьи.

Я нашелгидонлайн и установил файлы .deb для ядра изhttps://kernel.ubuntu.com/~kernel-ppa/mainline/v5.17.4/amd64/. После этого я приступил к запуску sudo dpkg -i *.debи установке .debзагруженных файлов.

Обнаружены ошибки

Установка не удалась

Reading database ... 224038 files and directories currently installed.)
Preparing to unpack linux-headers-5.17.4-051704_5.17.4-051704.202204200842_all.deb ...
Unpacking linux-headers-5.17.4-051704 (5.17.4-051704.202204200842) over (5.17.4-051704.202204200842) ...
Preparing to unpack linux-headers-5.17.4-051704-generic_5.17.4-051704.202204200842_amd64.deb ...
Unpacking linux-headers-5.17.4-051704-generic (5.17.4-051704.202204200842) over (5.17.4-051704.202204200842) ...
Preparing to unpack linux-image-unsigned-5.17.4-051704-generic_5.17.4-051704.202204200842_amd64.deb ...
Unpacking linux-image-unsigned-5.17.4-051704-generic (5.17.4-051704.202204200842) over (5.17.4-051704.202204200842) ...
/var/lib/dpkg/info/linux-image-unsigned-5.17.4-051704-generic.postrm ... removing pending trigger
Preparing to unpack linux-modules-5.17.4-051704-generic_5.17.4-051704.202204200842_amd64.deb ...
Unpacking linux-modules-5.17.4-051704-generic (5.17.4-051704.202204200842) over (5.17.4-051704.202204200842) ...
Setting up linux-headers-5.17.4-051704 (5.17.4-051704.202204200842) ...
Setting up linux-headers-5.17.4-051704-generic (5.17.4-051704.202204200842) ...
/etc/kernel/header_postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.17.4-051704-generic
   ...done.
Setting up linux-image-unsigned-5.17.4-051704-generic (5.17.4-051704.202204200842) ...
Setting up linux-modules-5.17.4-051704-generic (5.17.4-051704.202204200842) ...
Processing triggers for linux-image-unsigned-5.17.4-051704-generic (5.17.4-051704.202204200842) ...
/etc/kernel/postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.17.4-051704-generic
   ...done.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.17.4-051704-generic
I: The initramfs will attempt to resume from /dev/nvme0n1p5
I: (UUID=11ad606c-1f98-4dc1-b567-9b3fe528bd2e)
I: Set the RESUME variable to override this.
/etc/kernel/postinst.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.17.4-051704-generic
Found initrd image: /boot/initrd.img-5.17.4-051704-generic
Found linux image: /boot/vmlinuz-5.15.0-25-generic
Found initrd image: /boot/initrd.img-5.15.0-25-generic
Found linux image: /boot/vmlinuz-5.13.0-40-generic
Found initrd image: /boot/initrd.img-5.13.0-40-generic
/etc/grub.d/bin/grubcfg_proxy: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127
dpkg: error processing package linux-image-unsigned-5.17.4-051704-generic (--install):
 installed linux-image-unsigned-5.17.4-051704-generic package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 linux-image-unsigned-5.17.4-051704-generic

Из /etc/grub.d/bin/grubcfg_proxy: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory, я сделал вывод, что библиотека может отсутствовать. СогласноэтотПост на Stack Exchange, я пошел устанавливать необходимые библиотеки.

Однако этот журнал ошибок отображается всякий раз, когда я запускаю apt, для любого пакета, который я пробовал:

The following packages will be REMOVED:
  linux-image-5.13.0-19-generic
........
Fetched 140 kB in 2s (80.2 kB/s) 
(Reading database ... 224038 files and directories currently installed.)
Removing linux-image-5.13.0-19-generic (5.13.0-19.19) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-5.13.0-19-generic
/etc/kernel/postrm.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.17.4-051704-generic
Found initrd image: /boot/initrd.img-5.17.4-051704-generic
Found linux image: /boot/vmlinuz-5.15.0-25-generic
Found initrd image: /boot/initrd.img-5.15.0-25-generic
Found linux image: /boot/vmlinuz-5.13.0-40-generic
Found initrd image: /boot/initrd.img-5.13.0-40-generic
/etc/grub.d/bin/grubcfg_proxy: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 127
dpkg: error processing package linux-image-5.13.0-19-generic (--remove):
 installed linux-image-5.13.0-19-generic package post-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 linux-image-5.13.0-19-generic
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

Похоже, aptон сломан, поэтому я не могу установить ни одну библиотеку или программное обеспечение.

Обе ошибки указывают на отсутствие libcrypto...., так что это может быть ошибкой. Как мне решить проблему, а также установить более новую версию ядра Linux?

ИЗМЕНИТЬ: Просмотрhttps://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1969353Больше подробностей.

решение1

У меня возникла та же проблема после обновления с 20.04 до 22.04, без попытки установить новое ядро.

Пропавшееlibcrypto.so.1.1частьlibssl1.1, который необходимо установить, чтобы исправить проблему. Хотя apt в этом случае сломан, вы все равно можете вручную загрузить правильный .deb для вашего дистрибутива, а затем установить его с помощью dpkg. Например, я скачал версию amd64 напрямую спакеты.debian.orgа затем установил его с помощью

sudo dpkg -i libssl1.1*.deb

после чего я снова смогу использовать apt.

Сделав это, я понял, что можно также искатьРепозиторий пакетов Ubuntu. Они, по-видимому, не предоставили кандидата на установку для libssl1.1 для Ubuntu 22.04, только для libssl3. Возможно, что это и есть суть проблемы. Вы также должны иметь возможность использовать тот, который был из версии, с которой вы обновились. Однако тот, который изпакеты.debian.orgУ меня все отлично сработало.

решение2

Ручная установка libssl1.1 также исправила мою проблему:

wget http://debian.mirror.ac.za/debian/pool/main/o/openssl/libssl1.1_1.1.1o-1_amd64.deb
sudo dpkg -i libssl1.1_1.1.1o-1_amd64.deb

Также здесь вы можете получить обновленные URL-адреса на случай, если указанный выше адрес превратится в 404:

https://packages.debian.org/sid/amd64/libssl1.1/download

решение3

У меня проблема возникла из-за того, что я проиграл grub-customizerпри обновлении до 22.04. Если у вас та же проблема, это решение может быть лучше (спасибо vachaj11 изhttps://ubuntuforums.org/showthread.php?t=2474284&page=2&p=14095298#post14095298)

1. Переустановите grub-customizer

Вам придется вручную добавить исходный ppa, что можно сделать, выполнив:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

Теперь попробуйте установить grub-customizer с помощью:

sudo apt install grub-customizer

Есть вероятность, что это может не сработать, потому что apt сначала попытается удалить сломанный пакет linux-image... (и не сработает, завершив весь процесс) перед установкой grub-customizer. В этом случае вам придется временно пометить пакет linux-image... как неустановленный вместо half-installed. Это можно сделать, например, напрямую изменив соответствующую запись в /var/lib/dpkg/statusс half-installedна config-files. Откройте в gedit с помощью:

sudo gedit /var/lib/dpkg/status

Найдите linux-image-5.13.0-46-generic(ваша версия может быть другой, это пакет, который нельзя удалить). В конце строки Status:удалите half-installedи замените на config-files. Теперь сохраните файл и:

sudo apt install grub-customizer

должен быть выполнен без сбоев.

2. Откройте grub-customizer

Теперь восстановите grub, если он каким-либо образом сломан. В моем случае после открытия grub-customizer мне была предложена опция обновления grub, что я и сделал. Я также переупорядочил, как хотел. Также, среди прочего, он объединил дублирующие записи в grub, которые я видел ранее.

3. Удалите сломанный пакет.

Если вы ранее изменили статус linux-image... на config-files, вам придется вернуть его обратно, half-installedчтобы apt распознал, что с ним что-то сломалось. Теперь запустите:

sudo apt autoremove

что должно окончательно удалить пакет.

решение4

ручная установка libssl1.1 решила мою проблему.

wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1l-1ubuntu1.2_amd64.deb

sudo dpkg -i libssl1.1_1.1.1l-1ubuntu1.2_amd64.deb

Связанный контент