В пакетном менеджере APT 2.9.15 прекращено использование Apt-key

Опубликован выпуск инструментария для управления пакетами APT 2.9.15 (Advanced Package Tool). Ветка 2.9.x является экспериментальной и используется для разработки функциональности будущей стабильной версии APT 3.0, которая после стабилизации будет интегрирована в Debian Testing и войдёт в следующий значительный релиз Debian, а также будет добавлена в пакетную базу Ubuntu.

Ключевым изменением в новой версии стало окончательное прекращение использования утилиты apt-key для управления ключами, применяемыми для верификации цифровых подписей пакетов. Утилита apt-key несколько лет назад была объявлена устаревшей в связи с уходом от старой модели проверки целостности пакетов, в которой использовалось общее хранилище ключей (/etc/apt/trusted.gpg) и отсутствовала привязка ключей к репозиториям, т.е. ключ, добавленный для какого-то стороннего репозитория, подходил для проверки пакетов во всех репозиториях. Пришедший на смену apt-key метод работы с ключами подразумевает разделение хранилищ ключей для каждого репозитория (/etc/apt/trusted.gpg.d/ или /etc/apt/keyrings/).

Другие изменения:

  • В список путей для вызова gpg добавлена написанная на языке Rust утилита gpg-sq, принимающая те же аргументы, что и утилита gpg, но имитирующая её работу через Sequoia, реализацию OpenPGP на языке Rust. Вызов gpg-sq является более приоритетным, чем gpg, т.е. для использования gpg-sq вместо gpg достаточно установить соответствующий пакет.
  • Обеспечена привязка типов ключей к расширениям файлов: расширение “.asc” связано с ascii-armored ключами, “.gpg” – всегда с бинарными ключами, а все остальные файловые расширения вызовут ошибку “The key(s) in the keyring … are ignored as the file has an unsupported filetype”. Например, при использовании файла с ключом “/etc/apt/keyrings/winehq-archive.key”, его нужно будет переименовать в “/etc/apt/keyrings/winehq-archive.gpg” и исправить путь в файле в “/etc/apt/sources.list.d/”.
  • Многие функции переведены на использование класса “std::string” вместо “const char *” (определённый в стандарте С++17 класс std::string_view, более эффективно работающий со строками за счёт использования ссылок на существующие данные и исключения лишнего копирования данных, пока не задействован в коде).
  • Реализована поддержка самостоятельной проверки хранилищ ключей (keyring) и выполнения операции dearmor (преобразование ключа в формате ASCII-armored в бинарный формат) без обращения к apt-key.
  • Добавлена функция Base64Decode.
Release. Ссылка here.