LINUX.ORG.RU

APT 3.2.0 с новым механизмом разрешения зависимостей

 , ,


0

1

Сформирован релиз инструментария управления пакетами APT 3.2.0 (Advanced Package Tool) на основе изменений экспериментальной ветки 3.1. Ожидается, что новая версия будет интегрирована в Debian Unstable и Testing, а также войдёт в состав будущего релиза Debian 14; в Ubuntu 26.04 используется близкая версия 3.1.16.

Ключевым изменением стало развитие нового решателя зависимостей Solver3, который теперь используется по умолчанию. Механизм основан на алгоритмах с возвратом (backtracking), что позволило повысить точность разрешения конфликтов, улучшить выбор версий пакетов и ускорить выполнение операций — в тестах производительность выросла примерно вдвое. Также реализована поддержка многоэтапных обновлений, защита от удаления вручную установленных пакетов и более агрессивная очистка неиспользуемых зависимостей.

Добавлены новые диагностические команды apt why и apt why-not, позволяющие определить причины установки пакета или невозможности его установки. В отличие от аналогичных средств в aptitude, они опираются на фактические данные Solver-а зависимостей, а не на вероятностные оценки.

Расширены средства управления репозиториями: в файлах .sources появились опции Include и Exclude для формирования белых и чёрных списков пакетов. Также реализована поддержка вариантов микроархитектуры CPU (amd64v1–amd64v4), позволяющая использовать оптимизированные сборки пакетов под конкретные уровни x86-64.

Часть изменений касается управления историей операций. Добавлены команды history-list, history-info, а также средства отката и повторного выполнения транзакций (history-undo, history-redo, history-rollback), что повышает управляемость пакетной системы и упрощает восстановление состояния.

Среди прочих улучшений:

  • добавлена поддержка HTTPS в утилите dselect;
  • реализована защита от перехода системы в спящий режим во время работы dpkg;
  • появилась возможность запускать apt-daily при подключении ноутбука к сети питания;
  • внедрён механизм журналирования с метриками производительности в формате JSONL.

>>> Источник (OpenNet)

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

Отдельный блок изменений касается управления историей операций.

Какой еще отдельный блок? Опять нейрослоп?

dicos ★★★
()

что позволило повысить точность разрешения конфликтов

А что, раньше конфликт мог разрешится как-то не так?

mikhalich ★★
()

более агрессивная очистка неиспользуемых зависимостей

раньше autoremove удалял не всю ОС, а теперь всю

err
()
Ответ на: комментарий от mikhalich

А что, раньше конфликт мог разрешится как-то не так?

В стоковых установках все конечно ок, но если юзер навернет каких-то ppa особенных, что-то там запинит, то все может быть.

goingUp ★★★★★
()
Ответ на: комментарий от dicos

По-моему, вполне человеческая языковая конструкция. Блок бумаги, блок законов, блок изменений. Но да, я поменял на «часть изменений», так действительно лучше. Спасибо, что обратил внимание.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от mikhalich

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

r--r--r--
()
Ответ на: комментарий от Camel

Guix 1.5.0 у меня почему-то в виртуалке зависал через 20 минут «инактива», с чем это связано я так и не выяснил, зависал намертво, в логах тишина.

gagarin0
()
Ответ на: комментарий от kneedeep

В принципе можно поэкспериментировать, виртуалка у меня еще осталась, могу начать с обновления ядра, да

$ virsh list --all
 Id   Name                     State
-----------------------------------------
...
 -    guix-latest              shut off
...
gagarin0
()

У кого дебианоподобный дистр вы отпишитесь, как у вас там с подключёнными репозиториями софта, система не самовыпиливается и в dependency hell не скатывается?

temak
()
Ответ на: комментарий от zabbal

Nala работает через libapt, емнип, улучшение и на неё должно повлиять.

Aceler ★★★★★
()

может лучше так?

нового решателя зависимостей

-->

функции/механизма разрешения зависимостей


что повышает управляемость пакетной системы

-->

что улучшает упавление пакетной системы

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 2)

а собственно зачем ? лет бы 10 назад, а сейчас поздно

сейчас всё что потенциально может нарваться на конфликт убирается в отдельные контейнеры и машины. Постепенно идёт к микросервисной архитектуре но с другого конца и очень толстыми сервисами.

MKuznetsov ★★★★★
()
Ответ на: комментарий от mikhalich

что позволило повысить точность разрешения конфликтов

А что, раньше конфликт мог разрешится как-то не так?

Недостаточно точно. ;P ;))

Ну а теперь, нам на радость, повысили «точность разрешения конфликтов»... :)))

Somebody ★★★★
()
Ответ на: комментарий от Somebody

теперь никаких «писать мимо унитаза», никаких «беспорядков», все четко и по делу! как в аптеке!

sunjob ★★★★★
()

history-list, history-info

Джва года ждал.

VKraft ★★★
()
Ответ на: комментарий от goingUp

У меня была ситуация, где даже на дефолтной конфигурации APT не мог разрулить зависимости, где из основного репозитория ставился кросскомпилятор и пакеты под целевую архитектуру. Путался между ними и нативными.

aptitude, ЧСХ, с таким спокойно справляется.

Казалось бы, накопипасти кода из одного в другой, но нет.

a1ba ★★★★
()
Ответ на: комментарий от MKuznetsov

Там, где целесообразно применять контейнеры и пр. – это далеко не все применения линукса (очень надеюсь, что отвечаю не свидетелю церкви «линукс не для десктопа», этим, конечно, ничего не докажешь).

hobbit ★★★★★
()

Механизм основан на алгоритмах с возвратом (backtracking) Гентушным духом повеяло :).

dv76 ★★★★
()
Ответ на: комментарий от temak

все прекрасно, главное, как и везде, чтобы руки были вставлены тем концом и туда куда нужно. если наобормот - то ничего не поможет.

pfg ★★★★★
()
Ответ на: комментарий от Somebody

Ну а теперь, нам на радость, повысили «точность разрешения конфликтов»… :)))

– Разрешите конфликт.
– Разрешаю.
– Точно?
– Точно разрешаю.

Camel ★★★★★
()
Ответ на: комментарий от temak

Подключать очень аккуратно, смотреть что предлагает apt. У меня был подключен Sid для драйверов NVIDIA, и скачаны все обновления из Backports, подключены PPA для некоторого софта. У меня конфиг /etc/apt/sources.list.d/debian-main.sources был такой:

Types: deb
URIs: http://ftp.ru.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Trusted: yes
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Enabled: yes

Types: deb
URIs: http://ftp.ru.debian.org/debian
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Trusted: yes
Enabled: yes

Types: deb
URIs: http://ftp.ru.debian.org/debian
Suites: sid             
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Trusted: yes
Enabled: yes

Types: deb
URIs: https://ppa.launchpadcontent.net/atareao/telegram/ubuntu
Suites: questing
Components: main
Signed-By: /etc/apt/trusted.gpg.d/telegram.asc
Trusted: yes
Enabled: yes

Types: deb
URIs: https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu
Suites: noble
Components: main
Signed-By: /etc/apt/trusted.gpg.d/firefox.asc
Trusted: yes
Enabled: yes

Types: deb
URIs: https://ppa.launchpadcontent.net/jurplel/qview/ubuntu
Suites: mantic
Components: main
Signed-By: /etc/apt/trusted.gpg.d/qview.asc
Trusted: yes
Enabled: yes

Настройки apt pinning были вот такие. /etc/apt/preferences.d/90-pinning:

Package: *
Pin: release stable-backports
Pin-Priority: 900

Package: *
Pin: release sid
Pin-Priority: 10 
Alexander123
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.