apt-shell падает по segfault при любом действии Steps to Reproduce: 1.запускаем apt-shell 2.dist-upgrade 3.commit 4. начинает качать -> Ctrl-C Actual Results: после этого при любой команде apt-shell падает с segfault
поправка из #3091: валится если просто commit был прерван или обломался.
apt-shell sux completely.
а что так? имхо вещь удобная, с tab autoexpand намного легче жить. не надо постоянно apt-cache search, rpm -q, и т.д.
apt> commit The following NEW packages will be installed: cdp libghttp orpheus 0 upgraded, 3 newly installed, 0 removed and 0 not upgraded. Need to get 0B/208kB of archives. After unpacking 449kB of additional disk space will be used. Do you want to continue? [Y/n] Err file: i586/classic cdp 0.33-ipl11mdk File not found Err file: i586/classic libghttp 1.0.9-alt4 File not found Err file: i586/classic orpheus 1.5-alt2 File not found Failed to fetch [...] File not found Failed to fetch [...] File not found Failed to fetch [...] File not found There are broken packages. Run `check' to see them. You can try to fix them automatically with `install -f'. E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? apt> commit Segmentation fault
Created attachment 929 [details] apt-0.5.15cnc6-alterator3.patch Патч, исправляющий эту ошибку. Небольшие комментарии: судя по всему apt-shell был написан методом копирования кусков кода из apt-get'а. Т.к. apt-get никогда не был предназначен для дальнейшей работы после ошибочного download'а пакетов, то соответственно лезут всякие баги. В данном случае происходит следущее: после установки пакетов apt-shell'у необходимо перечитать Cache, что бы обновить информацию о состояниях. а Cache не перечитывается, если произошла хоть одна ошибка. но при этом авторы apt-shell'а считают, что удалить объект Cache надо в любом случае. Соответственно возникает недоделанный Cache, в котором все и падает. После раздумья было принято решение обновлять в этом случае Cache всегда (затрагивает поведение исключительно apt-shell), ибо часть пакетов могло поставиться, а часть нет и нам безусловно хочется посмотреть после установки unmet'ы, коих не будет видно пока не перечитается Cache. В общем - так оно не сегфолтится. Попутно в этом же патче исправлена еще одна ошибка, которая проявилась после того, как apt-shell смог работать дальше после ошибки установки пакетов ;-)
да, патч скорее всего будет приложен в след. сборке apt'а, ибо мы нарвались на эту ошибку в альтератор-пакагес ;-)
apt-shell'ом у нас теперь Сергей заведует.
(In reply to comment #6) > да, патч скорее всего будет приложен в след. сборке apt'а, ибо мы нарвались на > эту ошибку в альтератор-пакагес ;-) Ну что, приложили? :))
apt-0.5.15lorg2-alt12 кажется, не ломается - прервал по ctrl-c, запустил в том же сеансе install, commit, снова прервал, запустил еще раз. вроде работает.
(In reply to comment #9) > вроде работает. Ну тогда почему бы не закрыть баг?
per c#9
Действительно, в честь НГ ;)