Sury.org Обход

Yunohost решение проблемы заблокированных репозиториев Sury (на примере Ghost)
пытался установить Ghost на YunoHost и чуть не сошёл с ума из-за загадочных ошибок с ключами и заблокированными репозиториями.
Начало эпопеи — ошибка NO_PUBKEY
Запускаю установку Ghost, а мне в ответ:
```textW: GPG error: https://packages.sury.org/php bookworm InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B188E2B695BD4743
E: The repository 'https://packages.sury.org/php bookworm InRelease' is not signed.```
Оказалось, что репозиторий Sury, откуда берутся свежие PHP-пакеты, заблокирован для России. Ну и ладно, подумал я, будем искать обходные пути.
Шаманство с ключами и зеркалами
Первым делом решил добавить ключи вручную. Команда вроде простая:
bashcurl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add
-
Но тут меня встретил мудрый Linux с предупреждением:
textWarning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
Ну ладно, значит, так надо:
bashsudo curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/yarn.gpg >
/dev/null
Добавил ключи для Yarn и Sury, но ошибка не ушла.
Проверил списки репозиториев grep -r sury /etc/apt/sources.list.d/
Вывод:
text/etc/apt/sources.list.d/php.list:deb https://ftp.mpi-inf.mpg.de/mirrors/linux/mirror/deb.sury.org/repositories/php bookworm main
/etc/apt/sources.list.d/extra_php_version.list:deb [signed-by=/etc/apt/trusted.gpg.d/extra_php_version.gpg] https://packages.sury.org/php/ bookworm main
Оказывается, один файл указывает на зеркало, а другой — на заблокированный основной репозиторий. Вот тебе и конфликт ключей!
Удалил проблемный файл:
sudo rm /etc/apt/sources.list.d/extra_php_version.list
Обновил ключ для зеркала:
sudo curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/php.gpg >
/dev/null
Обновил apt: sudo apt update
И — о чудо! — никаких ошибок!
Выводы
- Если видите
NO_PUBKEY
— проверьте ключи и репозитории. - В России некоторые репозитории могут быть заблокированы — ищите зеркала.
apt-key
— в прошлом, теперь ключи кладём в/etc/apt/trusted.gpg.d/
.- Дублирование репозиториев с разными ключами — источник головной боли.