2 min read

Sury.org Обход

Sury.org заблокирован для России?
Ответили на вопрос 4 человека. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов.

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/.
  • Дублирование репозиториев с разными ключами — источник головной боли.