Релиз пакетного менеджера APT 3.0.0

Сформирован релиз инструментария для управления пакетами APT 3.0.0 (Advanced Package Tool), который вобрал изменения, накопленные в экспериментальной ветке 2.9. Новый выпуск принят в ветку Debian Unstable и в ближайшее время будет интегрирован в репозиторий Debian Testing, в котором развивается релиз Debian 13 и уже используется экспериментальная ветка APT 2.9, а также будет добавлен в пакетную базу Ubuntu.

Среди наиболее важных изменений:

  • Переработан интерфейс пользователя, в котором реализовано более наглядное отображение списка зависимостей, необходимых для загрузки при установке пакета. Если раньше имена пакетов с зависимостями выводились сплошным списком, то теперь они разбиваются на колонки в стиле утилиты «ls -C», а разные блоки вывода подсвечиваются своими цветами (например, удаляемые пакеты выделяются красным, а устанавливаемые — зелёным цветом). При выводе убраны дублирующиеся упоминания дополнительных и новых пакетов (объединены секции «NEW packages» и «additional packages»). Для управления расцветкой добавлены настройки «APT: Color::*» и «APT: Configuration: color», а также опции »--color» и »--no-color».

    CFD0C5CECEC5D4_1712990853.png

  • Реализовано автоматическое разделение на страницы вывода команд «show», «policy», «list», «search» и «showsrc». Разбивка на страницы включается через настройку Binary: apt: Pager, а приложение для разделения страниц определяется через переменную окружения PAGER.

  • Реализован улучшенный движок разрешения зависимостей Solver3 (включается через опцию »--solver 3.0»), в котором для разрешения конфликтов между зависимостями задействован алгоритм поиска с возвратом (backtracking). В новом движке также улучшен выбор версий, обеспечена поддержка выполнения обновлений в несколько стадий, значительно повышена производительность (apt-test теперь выполняется в два раза быстрее), добавлена опция »--no-strict-pinning» для установки экспериментальных версий, добавлена защита от удаления вручную поставленных пакетов, повышена агрессивность автоматического удаления неиспользуемых зависимостей. Добавлены более понятные обычным пользователям пояснения для ошибок, связанных с зависимостями.

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

  • Добавлена возможность использования утилиты sqv от проекта Sequoia для проверки цифровых подписей вместо вызова gpgv. В список путей для вызова gpg добавлена написанная на языке Rust утилита gpg-sq, принимающая те же аргументы, что и утилита gpg, но имитирующая её работу через Sequoia, реализацию OpenPGP на языке Rust. Вызов gpg-sq является более приоритетным, чем gpg, т.е. для использования gpg-sq вместо gpg достаточно установить соответствующий пакет.
  • Добавлен крипто-бэкенд для библиотеки OpenSSL, которая пришла на смену GnuTLS и Gcrypt.

  • Обеспечена привязка типов ключей к расширениям файлов: расширение ».asc» связано с ascii-armored ключами,».gpg» — всегда с бинарными ключами, а все остальные файловые расширения вызовут ошибку. Например, при использовании файла с ключом »/etc/apt/keyrings/winehq-archive.key», его нужно будет переименовать в »/etc/apt/keyrings/winehq-archive.gpg» и исправить путь в файле в »/etc/apt/sources.list.d/». Реализована поддержка самостоятельной проверки хранилищ ключей (keyring) и выполнения операции dearmor (преобразование ключа в формате ASCII-armored в бинарный формат) без обращения к apt-key.

  • Многие функции переведены на использование класса «std: string» вместо «const char *» (определённый в стандарте С++17 класс std: string_view, более эффективно работающий со строками за счёт использования ссылок на существующие данные и исключения лишнего копирования данных, пока не задействован в коде).

  • Предложен абстрактный интерфейс для работы с хэшами, реализованный в рамках работы по избавлению от жёсткой привязки к одной криптографической библиотеке.

  • В вывод команды «apt show --full» добавлена информация о закреплении пакетов (pinning), получаемая из полей APT-Pin, APT-Candidate и APT-Release.

  • Официально рекомендовано именовать файлы в каталоге /etc/apt/sources.list.d/ именем текущего поставщика в нижнем регистре (»$(dpkg-vendor --query Vendor | tr A-Z a-z).sources»).

  • В pkgDepCache добавлена поддержка транзакций и счётчиков обновлений.

  • Добавлена опция »--comment» для оставления комментария, сохраняемого в истории выполненных операций.

  • Добавлена поддержка HTTP-заголовка Retry-After для оптимизации возобновления прерванных загрузок.

  • В команду «apt list» добавлена опция »--target-release».

  • Добавлен новый уровень ошибок «audit», включаемый через опцию »--audit».

Дополнительно можно отметить изменения, появившиеся в экспериментальной в ветке APT 2.7 (разработка ветки 2.7 плавно перешла в разработку ветки 2.9), которые станут доступны в Debian 13 (в Debian 12 используется выпуск APT 2.6):

  • Добавлена поддержка снапшотов, управляемая опцией »--snapshot» (»-S»), при помощи которой можно обратиться к серверам репозиториев, поддерживающих снапшоты, и выбрать определённое состояние архива репозитория. Например, указав »--snapshot 20250405T081400Z» можно работать со срезом состояния репозитория, зафиксированным 5 апреля 2025 года в 08:14:00. Снапшоты настраиваются в секции APT: Snapshot в файлах sources-list.

  • Реализована опция »--update» (»-U»), позволяющая во время выполнения команд установки или обновления пакетов (apt install или apt upgrade) автоматически запустить операцию «apt update» для синхронизации индексов до открытия кэша и обработки sources.list.

  • Добавлена команда 'dist-clean' для удаления сохранённых в кэше пакетов и списков загруженных пакетов.



Источник: http://www.opennet.ru/opennews/art.shtml? num=63026

OpenNet прочитано 2680 раз