Назад | Перейти на главную страницу

Когда команда rpm -V не проверяет md5sums?

У меня более старая система (Fedora Core 6, это изолированная система, используемая для сборки для старых устройств). Я пытаюсь создать подходящую виртуальную машину и заметил разницу, которую не могу объяснить.

Обе системы имеют пакет glibc-2.5-3, который включает файл /lib/libc-2.5.so.

В rpm -qi glibc вывод совпадает точно в обеих системах.

В обеих системах rpm -Vv говорит, что все в порядке (........ /lib/libc-2.5.so).

В md5sum файла в двух системах НЕ СООТВЕТСТВУЮТ. (

Когда я делаю objdump -x файла в двух системах, я получаю РАЗНЫЕ значения начального адреса, подтверждая, что на самом деле два файла SO отличаются.

Итак, почему rpm -V скажите мне, что md5sum совпадает, когда это явно не так? Как получилось, что эти библиотеки стали другими?

Эти библиотеки, вероятно, предварительно связаны. RPM знает о предварительном связывании.

Эта почта говорит об этом.

«Проблема» (если это можно так назвать) в том, что rpm знает о prelink и знает, как с этим бороться. Как кратко объясняется в этом адрес электронной почты списка рассылки, «Rpm when –verify будет предварительно связывать –verify, что по сути является –undo с последующим повторным связыванием и сравнением». Таким образом, причина того, что rpm не проваливает проверку, заключается в том, что он в основном отключает предварительную ссылку для файла (ов) для проверки, запускает проверку, а затем снова включает предварительную ссылку. Вот почему rpm не сообщает об изменении MD5SUM, а AIDE -.

Где связанный адрес электронной почты:

Пт, 4 апреля 2003 г., в 16:24:39 -0500 Джеймс Ралстон написал:

2004-04-04 в 11:34: 35-0500 Якуб Елинек писал:

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

Со временем я напишу больше документации.

Один вопрос...

Если предварительная ссылка изменяет фактические двоичные файлы и библиотеки на месте (что похоже на то, что я читал на странице руководства), не делает ли это по существу бесполезным "rpm --verify"? Каждый бинарный файл и библиотека, измененные с помощью prelink, не пройдут тесты size / md5sum / mtime.

Это не подведет. rpm, когда --verify будет предварительно связывать --verify, что по сути является --undo с последующим повторным связыванием и сравнением.

Даже если --undo используется для отмены предварительного связывания, команда "rpm --verify" все равно не сработает (если предварительная ссылка не восстановит точное время, которое было в файлах до его запуска, то есть) ...

prelink не изменяет время работы предварительно связанных библиотек / двоичных файлов.

Якуб

Другая возможность, как правило, заключается в том, что отдельные проверки могут быть отключены на уровне каждого файла или каталога в самом файле спецификации. Таким образом, хотя это и неверно в данном случае, вполне возможно, что упаковщик может отключить проверку суммы MD5 для файлов, которые, как известно, изменяются по той или иной причине.