在目标和&源程序包traceroute-3:安装了2.0.1-6.el5.i386(安装了yum list).在两台机器上repoquery –info –show-duplicates traceroute仅列出该版本的软件包,并告诉我它可以在base-repository中找到.在两台机器上,rpm -ql traceroute-2.0.1-6.el5.i386列出了相同的文件.在两台机器上rpm -V traceroute-2.0.1-6.el5.i386告诉我安装进行顺利(没有文件修改/丢失).快速查看traceroute-2.0.1-6.el5.i386.rpm只显示二进制文件(/ bin / traceroute),符号链接和文档,所以我不希望在安装该软件包时进行编译(但是我不是RPM专家,它只是快速查看,而不是彻底的检查). file / bin / traceroute告诉我/ bin / traceroute:ELF 32位LSB可执行文件,Intel 80386,版本1(SYSV),用于GNU / Linux 2.6.9,动态链接(使用共享库),在两台机器上都被剥离. / bin / traceroute在两台机器上具有相同的大小.
然而,当我在两台机器上执行md5sum / bin / traceroute时,我会得到不同的结果. xxd&差异显示几十个字节不同,差异似乎在实际代码中(尚未对它们进行反汇编,但更改的部分不是人类可读的字符串). traceroute只是一个随机的例子,/ bin,/ sbin&中有几十个不同的文件. / lib目录下.
知道发生了什么事吗?我总是认为只要编译/编辑不是安装的一部分,安装相同的包两次就会产生完全相同的文件.至少我希望rpm -V会告诉我有关被篡改过的文件.如果yum有一个设施告诉我它从哪个存储库下载了RPM文件会有所帮助,但据我所知,这个工具在我的yum版本中不存在(3.2.22).要清楚:repoquery没有告诉我从哪个软件包下载了一个软件包,它只告诉我它可用的位置.如果在2个或更多启用的存储库中提供相同的包,则repoquery将列出所有包.百胜可以决定它想要哪个重复项,它似乎不会在任何日志文件中记录此决定.
要对其进行测试,请在先前已识别出不同哈希值的系统上运行以下命令并比较输出.
/usr/sbin/prelink -y /bin/traceroute | md5sum