Debian the following signatures couldn’t be verified because the public key is not available
При попытке установки PHP 5.2 на Debian lenny, wheezy, равно как и других версий на более новую версию Debian (а также при установке из различных репозитариев) может возникнуть проблема аутентификации пакетов.
При выполнении apt-get update
выводится информация об отсутствии ключа.
[levik@debian ~]$ sudo apt-get update
...
Fetched 21.9 MB in 14s (1,537 kB/s)
Reading package lists... Done
W: GPG error: http://security.ubuntu.com trusty-security Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.canonical.com trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.ubuntu.com trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://archive.ubuntu.com trusty-updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
[levik@debian ~]$
С этим же связана ошибка при установке:
WARNING: The following packages cannot be authenticated!
Объясняется это следующим. В менеджере пакетов apt предусмотрен перечень доверенных ключей, которые и определяют возможность аутентификации пакета (т.е. считается, что установка производится из надёжного источника). При отсутствии некоторых ключей в системе (в частности, зачем в системе ключи от старых версий) и выводится указанное предупреждение.
Однако, есть довольно простое решение - достаточно установить эти самые ключи в систему. Учитывая, что речь идёт об официальном ПО, просто предыдущих версий, установка не вызовет особых сложностей. Проблема в буквальном смысле решается парой строчек. В строчку следует подставить цифробуквенное значение из предупреждения (искать после NO_PUBKEY).
Чтобы добавить эти ключи, выполните следующие команды (для каждого из отсутствующих):
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4D270D06F42584E6
Если всё вышеуказанное не помогло, но очень нужно установить неподписанный пакет..
apt-get --allow-unauthenticated install