Summary: | Не обновляет при наличии установленных старых библиотек с зависимостями на них в установленных пакетах | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey V Turchin <zerg> | ||||||||
Component: | apt | Assignee: | Ivan Zakharyaschev <imz> | ||||||||
Status: | NEW --- | QA Contact: | qa-sisyphus | ||||||||
Severity: | normal | ||||||||||
Priority: | P3 | CC: | aen, aris, boyarsh, evg, glebfm, imz, iv, lav, ldv, placeholder, rider, viy, vseleznv | ||||||||
Version: | unstable | ||||||||||
Hardware: | all | ||||||||||
OS: | Linux | ||||||||||
Attachments: |
|
Description
Sergey V Turchin
2018-10-30 17:47:19 MSK
Created attachment 7832 [details]
10-dist-upgrade.txt
Created attachment 7833 [details]
20-remove-libavformat57.txt
Created attachment 7834 [details]
30-dist-upgrade.txt
Это наверняка хорошенько всплывёт при обновлении с p8 до p9. если в репозиторий положить те самые старые библиотеки, собранные в новом окружении - то apt'у в значительной степени полегчает. А если поднять приоритет целевому репозиторию? А я всё мечтаю оторвать http://git.altlinux.org/gears/a/apt.git?p=apt.git;a=commit;h=e2184306b28908f208869b791d1bb0550c659674 ;-) Попробуй apt/preferences настроить как здесь описано: https://bugzilla.altlinux.org/show_bug.cgi?id=35529 (В ответ на комментарий №8) > Попробуй apt/preferences С Pin 1001 стало ещё хуже. Если без apt/preferences было как 10-dist-upgrade.txt, то с Pin 1100 стало так же, плюс предлагает даунгрейдить 4 пакета. Я похоже тоже нарвался на эту же проблему на своём ноутбуке на свежем Sisyphus: apt/preferences не помогают # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Подсчет обновлений... Starting Starting 2 Investigating libavformat57 Package libavformat57 has broken dep on librtmp.so.0()(64bit) Considering librtmp 0 as a solution to libavformat57 4 Re-Instated librtmp Added librtmp to the remove list Fixing libavformat57 via keep of librtmp Investigating librtmp-debuginfo Package librtmp-debuginfo has broken dep on .sisyphus.215767.100.1.1-librtmp-2.4-alt2 Considering librtmp 0 as a solution to librtmp-debuginfo 0 Holding Back librtmp-debuginfo rather than change .sisyphus.215767.100.1.1-librtmp-2.4-alt2 Try to Re-Instate librtmp Investigating gst-plugins-bad1.0 Package gst-plugins-bad1.0 has broken dep on librtmp.so.1()(64bit) Considering librtmp 0 as a solution to gst-plugins-bad1.0 8 Holding Back gst-plugins-bad1.0 rather than change librtmp.so.1()(64bit) Investigating gst-plugins-bad1.0-debuginfo Package gst-plugins-bad1.0-debuginfo has broken dep on .sisyphus.215767.200.1.1-gst-plugins-bad1.0-1.14.4-alt2 Considering gst-plugins-bad1.0 8 as a solution to gst-plugins-bad1.0-debuginfo 0 Holding Back gst-plugins-bad1.0-debuginfo rather than change .sisyphus.215767.200.1.1-gst-plugins-bad1.0-1.14.4-alt2 Try to Re-Instate librtmp-debuginfo Try to Re-Instate gst-plugins-bad1.0 Try to Re-Instate gst-plugins-bad1.0-debuginfo Done Завершено Следующие пакеты будут СОХРАНЕНЫ: gst-plugins-bad1.0 gst-plugins-bad1.0-debuginfo librtmp librtmp-debuginfo 0 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 4 не будет обновлено. Помогает вот это: # apt-get install librtmp Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Следующие дополнительные пакеты будут установлены: gst-plugins-bad1.0 gst-plugins-bad1.0-debuginfo librtmp-debuginfo Следующие пакеты будут ОБНОВЛЕНЫ: gst-plugins-bad1.0 gst-plugins-bad1.0-debuginfo librtmp librtmp-debuginfo Следующие пакеты будут УДАЛЕНЫ: libavdevice57 libavfilter6 libavformat57 libavformat57-debuginfo 4 будет обновлено, 0 новых установлено, 4 пакетов будет удалено и 0 не будет обновлено. Необходимо получить 0B/9862kB архивов. После распаковки будет освобождено 26,5MB дискового пространства. Могу попробовать apt без патча от Глеба, если его кто-то соберёт потестировать. (In reply to comment #7) > А я всё мечтаю оторвать > http://git.altlinux.org/gears/a/apt.git?p=apt.git;a=commit;h=e2184306b28908f208869b791d1bb0550c659674 > ;-) Ты думаешь, этот коммит там просто так, от нечего делать появился, что ли? (В ответ на комментарий №14) > Ты думаешь, этот коммит там просто так, от нечего делать появился, что ли? Ты думаешь, я методом научного тыка выбрал этот коммит? К сожалению кроме решения некоторых проблем он порождает новые. P.S. Вместо внесения костылей(не в обиду Глебу) для решения этой проблемы достаточно одного распоряжения _одному_ сотруднику. Всё. Серёг, не только Аристарх не следует Shared Libs Policy. Конечно, имя Аристарх вымышленное и я его указал случайно. (В ответ на комментарий №16) > не следует Shared Libs Policy. Да. ldv тоже был подписан и на Шрековские(имя вымышленное) недавние пляски с пакетами. Возможно, надежда на этот коммит, но он не решает проблему, а лишь изменяет ее. (In reply to comment #7) > А я всё мечтаю оторвать > http://git.altlinux.org/gears/a/apt.git?p=apt.git;a=commit;h=e2184306b28908f208869b791d1bb0550c659674 > ;-) (In reply to comment #15) > (В ответ на комментарий №14) > > Ты думаешь, этот коммит там просто так, от нечего делать появился, что ли? > Ты думаешь, я методом научного тыка выбрал этот коммит? > К сожалению кроме решения некоторых проблем он порождает новые. Какие? Я много лет слышу от тебя предположения о том, что этот коммит что-то ломает, но не припомню доказательств. Я ничего не имею против его откатывания, но только если он создаёт проблем больше, чем решает. Глеб, ну вот эта проблема явно может быть создана твоим коммитом. Нет ? (В ответ на комментарий №15) > P.S. > Вместо внесения костылей(не в обиду Глебу) для решения этой проблемы достаточно > одного распоряжения _одному_ сотруднику. Всё. Серега, ты так пристально следишь за этим не названным сотрудником, что не заметил, что в приведенном выше примере сонейм сменился у librtmp. (В ответ на комментарий №20) > Глеб, ну вот эта проблема явно может быть создана твоим коммитом. Нет ? Я про комментарий №11 Кстати, Юра, спасибо - может быть следование librtmp shared libs policy и помогло бы решению этой конкретно проблемы. (В ответ на комментарий №16) > не следует Shared Libs Policy. Не-не-не! Тут не "неследование Shared Libs Policy", а "намеренное введение apt в ступор". С xorg там в этом плане всё нормально было, кстати. (In reply to comment #20) > Глеб, ну вот эта проблема явно может быть создана твоим коммитом. Нет ? Я считаю, что не может. ну это мо(В ответ на комментарий №25)
> (In reply to comment #20)
> > Глеб, ну вот эта проблема явно может быть создана твоим коммитом. Нет ?
>
> Я считаю, что не может.
ну это можно легко проверить, достаточно кому-то заинтересованному собрать apt без этого патча в task, я его установлю и скажу что получилось. Систему не обновляю, готов помочь чем смогу.
Но наверное эту ситуацию можно воспроизвести на стендах, если обновить дистрибутив с gst-plugins-bad0 до не очень свежего Sisyphus.
(В ответ на комментарий №21) > Серега, ты так пристально следишь за этим не названным сотрудником, что не > заметил, что в приведенном выше примере сонейм сменился у librtmp. Я тебе больше скажу. Тот неназванный сотрудник фигурирует в _каждом_ dist-upgrade благодаря e2184306b28908f208869b791d1bb0550c659674. ;-) (В ответ на комментарий №25)
> > Глеб, ну вот эта проблема явно может быть создана твоим коммитом. Нет ?
> Я считаю, что не может.
Там может быть другое. Возможно, более раннее.
apt с какого-то момента перестал стремиться произвести обновление. Это я уже не смогу найти.
(В ответ на комментарий №20) > Глеб, ну вот эта проблема явно может быть создана твоим коммитом. Нет ? Я проверил. e2184306b28908f208869b791d1bb0550c659674 на эту ситуацию не влияет. По состоянию на 6.11 изменений в лучшую сторону нет: # apt-get dist-upgrade Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Подсчет обновлений... Завершено Следующие пакеты будут ОБНОВЛЕНЫ: ffmpeg ffplay ffprobe firmware-linux jq kernel-doc-un kernel-headers-un-def libavcodec58 libavcodec58-debuginfo libavdevice58 libavfilter7 libavformat58 libavformat58-debuginfo libavresample4 libavutil56 libavutil56-debuginfo libgc libgit2 libgit2-debuginfo libjq libpostproc55 libswresample3 libswresample3-debuginfo libswscale5 libswscale5-debuginfo libwacom libwacom-data libwacom-debuginfo libwine p7zip pciids python-module-pycparser python-sphinx-objects.inv python3-module-pycparser Следующие пакеты будут СОХРАНЕНЫ: gst-plugins-bad1.0 gst-plugins-bad1.0-debuginfo librtmp librtmp-debuginfo 34 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 4 не будет обновлено. Необходимо получить 0B/159MB архивов. После распаковки потребуется дополнительно 20,4MB дискового пространства. Продолжить? [Y/n Кто-то собирается это исправлять ? На 18.12: # apt-get -o Debug::pkgProblemResolver="true" dist-upgrade Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Подсчет обновлений... Starting Starting 2 Investigating libavformat57 Package libavformat57 has broken dep on librtmp.so.0()(64bit) Considering librtmp 0 as a solution to libavformat57 2 Re-Instated librtmp Added librtmp to the remove list Fixing libavformat57 via keep of librtmp Investigating librtmp-debuginfo Package librtmp-debuginfo has broken dep on .sisyphus.215767.100.1.1-librtmp-2.4-alt2 Considering librtmp 0 as a solution to librtmp-debuginfo 0 Holding Back librtmp-debuginfo rather than change .sisyphus.215767.100.1.1-librtmp-2.4-alt2 Try to Re-Instate librtmp Investigating gst-plugins-bad1.0 Package gst-plugins-bad1.0 has broken dep on librtmp.so.1()(64bit) Considering librtmp 0 as a solution to gst-plugins-bad1.0 8 Holding Back gst-plugins-bad1.0 rather than change librtmp.so.1()(64bit) Investigating gst-plugins-bad1.0-debuginfo Package gst-plugins-bad1.0-debuginfo has broken dep on .sisyphus.215767.200.1.1-gst-plugins-bad1.0-1.14.4-alt2 Considering gst-plugins-bad1.0 8 as a solution to gst-plugins-bad1.0-debuginfo 0 Holding Back gst-plugins-bad1.0-debuginfo rather than change .sisyphus.215767.200.1.1-gst-plugins-bad1.0-1.14.4-alt2 Try to Re-Instate librtmp-debuginfo Try to Re-Instate gst-plugins-bad1.0 Try to Re-Instate gst-plugins-bad1.0-debuginfo Done Завершено Следующие пакеты будут СОХРАНЕНЫ: gst-plugins-bad1.0 gst-plugins-bad1.0-debuginfo librtmp librtmp-debuginfo 0 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 4 не будет обновлено. Не обновляет при наличии установленных старых библиотек с зависимостями на них в установленных пакетах. При чём apt не учитывает, что в новых версиях этих пакетов старая библиотека уже не нужна. Вот librtmp Provides: 2.4-alt2 - librtmp .sisyphus.215767.100.1.1-librtmp-2.4-alt2 librtmp.so.1()(64bit) 2.4-alt1.1 - librtmp librtmp.so.0()(64bit) Вот новый gst-plugins-bad1.0: # rpm -qpR gst-plugins-bad1.0-1.14.4-alt2.x86_64.rpm |grep librtmp librtmp.so.1()(64bit) >= set:kfdMMZLCM0GdXfYc6r7qfP2L5ScBKYxnrWGOdBng # rpm -qR gst-plugins-bad|grep librtmp пакет gst-plugins-bad не установлен [root@riderbook ~]# rpm -qR gst-plugins-bad1.0|grep librtmp librtmp.so.0()(64bit) >= set:kfdMMZLCM0GdXfYc6r7qfP2L5ScBKYxnrWGOdBng А держат его: # rpm -e librtmp ошибка: Неудовлетворенные зависимости: librtmp.so.0()(64bit) >= set:kgdMUZDzCStc1WZDUPoItoXpmUpxdjFVtj нужен для (установлен) libavformat57-2:3.3.6-alt4.x86_64 librtmp.so.0()(64bit) >= set:kfdMMZLCM0GdXfYc6r7qfP2L5ScBKYxnrWGOdBng нужен для (установлен) gst-plugins-bad1.0-1.14.4-alt1.x86_64 librtmp = 2.4-alt1.1 нужен для (установлен) librtmp-debuginfo-2.4-alt1.1.x86_64 apt каким-то образом должен догадаться что нужно снести libavformat57 и тогда всё будет обновляться по идее. Либо в репозитории должен быть librtmp.so.0 (В ответ на комментарий №32) > Либо в репозитории должен быть librtmp.so.0 На это завязываться точно неправильно. > apt каким-то образом должен догадаться что нужно снести libavformat57 и тогда > всё будет обновляться по идее. Он вообще с какого-то времени(давно) перестал стремиться делать именно это. Т.е. перестал стремиться обновить с выносом пакетов. Возможно, есть смысл снижать вес пакета, если его нет в репозитории. Данную ошибку я попробую исправить обновлением (выкладыванием в репозиторий) libavformat57, собрав его без librtmp. Но вообще, конечно, снижение веса у пакетов, отсутствующих в репозитории должно облегчить обновление в данном конкретном случае. Вероятно, такое изменение весов может привести к каким-то другим проблемам. (В ответ на комментарий №34) > Вероятно, такое изменение весов может привести к каким-то другим проблемам. К выносу сторонних и самосборных пакетов, если какой-то конфликт возник. Но, может, это и хорошо. > apt-get dist-upgrade -V
...
Построение дерева зависимостей...
Следующие пакеты будут ОБНОВЛЕНЫ:
phpMyAdmin (p9+231933.100.3.2@1560463901 => p9+260652.100.1.1@1604010795)
Следующие пакеты будут УДАЛЕНЫ:
phpMyAdmin-apache2-php7 (4.8.5-alt2:p9+231933.100.3.2@1560463901)
Следующие НОВЫЕ пакеты будут установлены:
libzip5 (p9+257224.100.3.1@1599247578)
php7-mysqlnd (p9+259362.100.4.1@1602277606)
php7-zip (p9+259362.4000.4.1@1602279187)
1 будет обновлено, 3 новых установлено, 1 пакетов будет удалено и 0 не будет обновлено.
...
# apt-get install phpMyAdmin-apache2-php7
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
php7-mysqlnd-mysqli
Следующие пакеты будут УДАЛЕНЫ:
php7-mysqli
Следующие НОВЫЕ пакеты будут установлены:
php7-mysqlnd-mysqli phpMyAdmin-apache2-php7
с php-mysqlnd-mysqli не очень удачный пример, т.к. php-mysqli есть в репозитории и зависимости на него в системе будут отсутствовать после транзакции. (Ответ для Anton Farygin на комментарий #37) > с php-mysqlnd-mysqli не очень удачный пример, т.к. php-mysqli есть в > репозитории и зависимости на него в системе будут отсутствовать после > транзакции. Будут отсутствовать после. Мне показалось, что корень проблемы тот же. Завести новую багу про смену конфликтующих библиотек при обновлении? (Ответ для Vitaly Lipatov на комментарий #38) > (Ответ для Anton Farygin на комментарий #37) > > с php-mysqlnd-mysqli не очень удачный пример, т.к. php-mysqli есть в > > репозитории и зависимости на него в системе будут отсутствовать после > > транзакции. > Будут отсутствовать после. Мне показалось, что корень проблемы тот же. > Завести новую багу про смену конфликтующих библиотек при обновлении? Нет, возможно это исправится после исправления этой ошибки. Я бы не хотел, чтобы отсутствующие пакеты в репозитории удалялись при обновлении в случае конфликта. Должен быть способ это предотвратить. (Ответ для Vladimir D. Seleznev на комментарий #40) > Я бы не хотел, чтобы отсутствующие пакеты в репозитории удалялись при > обновлении в случае конфликта. Должен быть способ это предотвратить. я вижу только один вариант - вынести в настройку возможность управлять этим поведением. |