Релиз пакетного менеджера 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».
Реализовано автоматическое разделение на страницы вывода команд «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 раз