Назад | Перейти на главную страницу

Невозможно обновить Debian Jessie до стабильного из-за deb.sury PHP PPA

Я пытаюсь обновить свой экземпляр Linode Jessie до стабильного, выполнив следующие действия. этот учебник. Я обновил свой /etc/apt/sources.list файл, и я до $ sudo apt update шаг. Когда я ввожу эту команду, я получаю следующее:

Hit http://mirrors.linode.com stable InRelease
Hit http://mirrors.linode.com stable-updates InRelease                         
Ign http://nyc2.mirrors.digitalocean.com stable InRelease                      
Hit http://archive.debian.org jessie-backports InRelease                       
Ign http://nyc2.mirrors.digitalocean.com stable Release.gpg                    
Ign http://nyc2.mirrors.digitalocean.com stable Release                        
Get:1 http://security.debian.org stable/updates InRelease [39.1 kB]            
Get:2 https://packages.sury.org stable InRelease                        
Ign https://packages.sury.org stable InRelease                                 
Get:3 http://mirrors.linode.com stable/main Sources [7,827 kB]                 
W: There is no public key available for the following key IDs:                 
648ACFD622F3D138
 NO_PUBKEY DCC9EFBF77E11517
W: There is no public key available for the following key IDs:
648ACFD622F3D138
E: Release file for http://archive.debian.org/debian/dists/jessie-backports/InRelease is expired (invalid since 145d 4h 29min 16s). Updates for this repository will not be applied.

Мой вышеупомянутый /etc/apt/sources.list файл:

# 

# deb cdrom:[Debian GNU/Linux 8.3.0 _Jessie_ - Official Multi-architecture amd6$

#deb cdrom:[Debian GNU/Linux 8.3.0 _Jessie_ - Official Multi-architecture amd64$

deb http://mirrors.linode.com/debian/ stable main
deb-src http://mirrors.linode.com/debian/ stable main

deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main

# jessie-updates, previously known as 'volatile'
deb http://mirrors.linode.com/debian/ stable-updates main
deb [arch=i386,ppc64el,amd64] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.2/debian stable main
# deb-src [arch=i386,ppc64el,amd64] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.2/debian stable main

deb-src http://mirrors.linode.com/debian/ stable-updates main

Проведя небольшое исследование PPA, я также обновил свой файл `/etc/apt/sources.list.d/php.list следующим образом:

deb https://packages.sury.org/php/ stable main

Но ошибка остается.

Есть ли способ обновить этот PPA, чтобы его можно было использовать с Debian Stable? Или есть другой способ обойти эту проблему?

Вам просто не хватает ключей подписи; пакеты в новом выпуске подписаны с использованием новых ключей. Вы можете получить ключи с сервера ключей и сохранить их как новые файлы в /etc/apt/trusted.gpg.d/:

$ sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/debian-archive-buster-automatic.gpg --keyserver keyserver.ubuntu.com --recv 648ACFD622F3D138
gpg: keyring '/etc/apt/trusted.gpg.d/debian-archive-buster-automatic.gpg' created
gpg: key DC30D7C23CBBABEE: public key "Debian Archive Automatic Signing Key (10/buster) <ftpmaster@debian.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1

$ sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/debian-archive-buster-stable.gpg --keyserver keyserver.ubuntu.com --recv DCC9EFBF77E11517
gpg: keyring '/etc/apt/trusted.gpg.d/debian-archive-buster-stable.gpg' created
gpg: key DCC9EFBF77E11517: public key "Debian Stable Release Key (10/buster) <debian-release@lists.debian.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1

Если разрешения этих файлов другие, измените их на -rw-r--r-- с помощью:

sudo chmod 644 /etc/apt/trusted.gpg.d/debian-archive-buster-automatic.gpg
sudo chmod 644 /etc/apt/trusted.gpg.d/debian-archive-buster-stable.gpg

Теперь ключи должны быть перечислены в выводе apt-key list и ошибка с apt update быть исправленным.

Я обнаружил, что использование связки ключей gpg2 не будет работать из-за debootstrap, использующего gpgv под капотом, который использует версию базы данных gpg1. Я воссоздал базу данных gpg вот так из сервер архивных ключей debian, Обратите внимание, что gpg - это gpg 1.x.x, а не gpg 2.x.x или новее на момент написания:

wget https://ftp-master.debian.org/keys/release-10.asc -qO- | gpg --import --no-default-keyring --keyring ./debian-release-10.gpg
debootstrap --keyring=./debian-release-10.gpg buster /srv/buster


If deboostrap were updated to use gpg --verify instead of gpgv, I would imagine gpg2 could be used as a drop-in replacement - But I cannot be certain.