Инструменты apt
не поддерживают откат, поэтому простого способа отменить обновление не существует. Вам нужно определить пакеты, которые вы хотите понизить, и найти соответствующие двоичные файлы, чтобы передать их apt
или dpkg
. Есть несколько подходов, которые вы можете использовать.
Самый распространенный способ — использовать snapshot.debian.org . Он содержит копию каждого отдельного пакета, загруженного в архивы Debian, а также предоставляет репозитории моментальных снимков с согласованным набором пакетов для заданной метки времени. В вашем случае вы должны найти соответствующую версию gimp
исходного пакета , а затем добавить соответствующий репозиторий в исходный код (, см. инструкции на главной странице ).
Другой подход, который работает в данном конкретном случае и который вы рассматривали, заключается в добавлении Debian 10 в ваши репозитории, поскольку версия пакета gimp
, до которой вы хотите перейти, доступна там. В настоящее время это не приведет к понижению версии, кроме пакетов gimp
; вы получите только libopenexr23
рядом с libopenexr24
.
Наконец, поскольку у вас все еще есть более старый пакет в apt
архивах (/var/cache/apt/archives
), вы можете установить его оттуда, либо используя dpkg -i
, либо превратив свой кеш в репозиторий :
.
Packages
:dpkg-scanpackages. > Packages
(в каталоге, в который вы скопировали все пакеты; вам понадобится dpkg-dev
дляdpkg-scanpackages
)Packages
:gzip < Packages > Packages.gz
(это сохранит оба файла)Release
:apt-ftparchive -o "APT::FTPArchive::Release::Origin=cache-repository" release. > Release
(вам понадобится apt-utils
дляapt-ftparchive
)gpg --yes --sign --armor --clearsign --output InRelease Release
Затем вы можете добавить запись deb file:/path/to/...
в свои репозитории и устанавливать пакеты оттуда. (Вы можете пропустить этап подписания, если укажете apt
считать репозиторий надежным.)
Теперь моя система исправлена, но я не знаю, какие из предпринятых мной шагов были действительно необходимы. Вероятно, самой важной частью было полное удаление активного ядра и его переустановка вместо того, чтобы «просто» переустанавливать его на место. mhwd-kernel -r linux510
не работает, если в данный момент используется ядро 5.10, но это работает:
yay -Rdd linux510 linux510-acpi_call linux510-bbswitch linux510-broadcom-wl linux510-headers linux510-nvidia linux510-r8168 linux510-rtl8723bu linux510-tp_smapi linux510-vhba-module linux510-virtualbox-host-modules
Часть dd
позволяет игнорировать все проблемы с зависимостями.
Я также снова удалил ядро 5.15, которое установил во время устранения неполадок. Затем я переустановил ядро 5.10 примерно так:
yay -S linux510 linux510-extramodules
После этого каталог /boot
содержал файлы initramfs-5.10-x86_64-fallback.img
, initramfs-5.10-x86_64.img
, intel-ucode.img
и vmlinuz-5.10-x86_64
, которых раньше там не было.
Я также использовал эту команду:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
Там я не использовал каталог EFI /boot/EFI
, хотя он существует. Я не знаю, была ли эта команда необходима.
Я также использовал эти команды:
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -P
update-grub
Я не знаю, какие из них были необходимы. После этого я перезагрузился, выбрал в биосе запись, начинающуюся с «UEFI», и система снова запустилась нормально.