Выпуск пакетного менеджера 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