Выпуск пакетного менеджера APT 2.0
Подготовлен релиз инструментария для управления пакетами APT 2.0 (Advanced Package Tool), развиваемого проектом Debian. Кроме Debian и производных от него дистрибутивов APT также применяется в некоторых дистрибутивах на основе пакетного менеджера rpm, таких как PCLinuxOS и ALT Linux. Новая ветка вобрала в себя изменения, накопленные в процессе разработки экспериментальной ветки 1.9.x. Новый выпуск в ближайшее время будет интегрирован в ветку Debian Unstable и в пакетную базу Ubuntu (в Ubuntu 19.10 использовалась экспериментальная ветка 1.9).
Из изменений можно отметить:
- В командах, принимающих имена пакетов, появилась поддержка шаблонов. Синтаксис шаблонов в основном повторяет стиль шаблонов aptitude. Поддержка масок и регулярных выражений в аргументах команды apt прекращена, вместо них теперь следует использовать шаблоны. Например для вывода списка всех вручную установленных пакетов из секций со словами libs, perl и python:
apt list '~i !~M (~slibs|~sperl|~spython)'
- Добавлены команды «apt satisfy» и «apt-get satisfy», позволяющие установить пакеты, требуемые для удовлетворения зависимостей, указанных в строке, переданной в качестве аргумента. В том числе можно перечислять несколько строк и указывать блоки «Conflicts:» для исключения зависимостей. Например:
apt-get satisfy "foo" "Conflicts: bar" "baz (›› 1.0) | bar (= 2.0), moo"
- Добавлена возможность закрепления в привязке к пакету с кодом через добавление префикса «src:» перед именем пакета (pinning, позволяет добавлять пакеты из других веток без обновления всей системы, например, установить в stable пакеты из testing или unstable). Для закрепления всех бинарных пакетов, собранных из пакета с кодом apt 2.0.0 можно указать:
Package: src:apt Pin: version 2.0.0 Pin-Priority: 990
- В команде apt обеспечено ожидание освобождения блокировки dpkg. По умолчанию при запуске с консоли ожидание не ограничено по времени, а в остальных случаях таймаут составляет 120 секунд.
- Если apt не удаётся установить блокировку, ошибка теперь выводится с отображением имени и pid процесса, удерживающего lock-файл.
- Добавлены команды merge-translations и bump-abi.
- Для криптографического хэширования задействованы реализации MD5, SHA1 и SHA2 из библиотеки libgcrypt.
- Усилено распараллеливание запуска обработчиков rred и распаковки во время выполнения команды update.
- Перечисленные в файле auth.conf учётные записи теперь передаются только при обращении по HTTPS для избежания утечки в случае перехвата HTTP-соединения.
- Требование к версии стандарта C++ поднято до C++14.
- В apt-helper добавлена поддержка указания нескольких хэшей для одного файла.
- Осуществлено слияние библиотеки libapt-inst с libapt-pkg.
- Модернизирован формат кэша, который теперь позволяет добавлять новые записи без нарушения ABI. Указатели в кэше теперь статически типизированы и не могут сравниваться с целыми числами (за исключением 0 через nullptr).
- Проведена чистка от устаревших флагов и осуществлено слияние различных прототипов функций. Удалены собственные реализации алгортимов CRC16, MD5, SHA1 и SHA2.
Источник: http://www.opennet.ru/opennews/art.shtml? num=52503
© OpenNet