rpm при описанной последовательности действий делает segfault. Если смотреть под gdb, то получаем следующий дамп: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 14855)] 0x002aeeba in fpLookupList () from /usr/lib/librpmdb-4.0.4.so $ rpm -q librpm rpm librpm-4.0.4-alt42 rpm-4.0.4-alt42 Более того, если попробовать удалять, скажем, несуществующий пакет из базы, rpm входит в бесконечный цикл по невозможности создать некий файл в tmp. Steps to Reproduce: 1. Создать пустую директорию, назовем ее /chroot 2. Распаковать приаттаченный testcase базы RPM в /chroot/var/lib/rpm 3. rpm --rootdir /chroot -e inquisitor-client Actual Results: segmentation fault Expected Results: Пакет удаляется из базы, производится попытка удалить файлы пакета с диска, вероятно, это не удается и выводятся какие-то предупреждения о том, что файлов нет.
Created attachment 764 [details] Testcase RPM DB
Приаттачить в багзилле тесткейс не удалось из-за объема. Вот ссылка: http://www.lrn.ru/~greycat/var.tar.bz2 [2223KB]
А каталог для временных файлов в /chroot создан?
Я так понимаю, что --root предназначена для пользователя root. Тестировать надо root'ом?
Считаю нужным закрыть этот баг, т.к. у меня оно уже давно не воспроизводится - ни с такой, ни с какой-либо другой базой с современным rpm. $ rpm -q rpm rpm-4.0.4-alt77