У меня есть более старая система (Ядро Fedora 6, это - изолированная система, используемая, чтобы сделать сборки для более старых устройств). Я пытаюсь создать соответствие VM, и я заметил различие, которое я не могу объяснить.
Обе системы имеют пакет glibc-2.5-3 на них, который включает файл/lib/libc-2.5.so.
rpm -qi glibc
вывод соответствует точно в обеих системах.
В обеих системах, rpm -Vv
говорит, что все прекрасно (........ /lib/libc-2.5.so
).
md5sum
из файла в этих двух системах НЕ СООТВЕТСТВУЮТ. (
Когда я делаю objdump -x
из файла в этих двух системах я получаю РАЗЛИЧНЫЕ значения начального адреса, подтверждая, что на самом деле два ТАК файлы отличаются.
Так, почему делает rpm -V
скажите мне, что md5sum соответствует, когда он ясно не делает? Как получается, что эти библиотеки стали отличающимися?
Эти библиотеки, вероятно, предварительно связаны. RPM знает о предварительных ссылках.
В этом посте говорится об этом.
«Проблема» (если это можно так назвать) в том, что rpm знает о предварительных ссылках и знает, как с ними бороться. Как лаконично объясняется в этом электронном письме со списком рассылки , «rpm when –verify будет предварительно связывать –verify, что по сути является –undo с последующим повторным связыванием и сравнением». Таким образом, причина того, что rpm не проваливает проверку, заключается в том, что он в основном отключает предварительную ссылку для файла (ов) для проверки, запускает проверку, а затем снова включает предварительную ссылку. Вот почему rpm не будет сообщать об изменении MD5SUM, а AIDE будет.
Где связанный адрес электронной почты:
Пт, 4 апреля 2003 г., 16:24:39 -0500, Джеймс Ралстон написал:
04.04.2003, 11:34: 35-0500 Якуб Елинек написал:
man prelink
Я в конечном итоге напишу больше документации.
Один вопрос ...
Если предварительная ссылка изменяет фактические двоичные файлы и библиотеки на месте (которые похоже на то, что я читал страницу руководства), не так ли по существу сделать "rpm --verify" бесполезным? Каждый бинарный файл и библиотека, измененная с помощью предварительной ссылки, не пройдет тесты size / md5sum / mtime
. rpm, когда --verify будет предварительно ссылаться на --verify, который по существу --undo, за которым следует повторное предварительное связывание и сравнение.
Даже если --undo используется для отмены предварительного связывания, "rpm --verify" будет по-прежнему терпит неудачу (если предварительная ссылка не восстановила точное время, которое файлы перед его запуском, то есть) ...
prelink не изменяет время работы предварительно связанных библиотек / двоичных файлов.
Jakub
Другая возможность, в общем, состоит в том, что отдельные проверки проверки могут быть отключены для каждого -файл или уровень каталога в самом файле спецификации. Итак, хотя в данном случае это не так,вполне возможно, что упаковщик может отключить проверку суммы MD5 для файлов, которые, как известно, изменяются по той или иной причине.