RHEL5的zlib文件大小不同

天儿真好,

在调查某个特定RHEL 5实例的意外行为时,我遇到了这样一个恼人的事实,即在某些RHEL 5实例中/usr/lib/libz.so.1.2.3的文件大小不同,尽pipe报告的RPM包是identicl,具有相同的build造date。 我自己的RHEL包zlib-1.2.3-3.i386.rpm以及客户站点上的一个安装包含libz.so.1.2.3字节的libz.so.1.2.3

 -rwxr-xr-x 1 root root 75284 19. Jul 2006 /usr/lib/libz.so.1.2.3 

在具有相同软件包版本的另一个RHEL 5实例上,相同的文件具有73836个字节:

 -rwxr-xr-x 1 root root 73836 Jul 19 2006 /usr/lib/libz.so.1.2.3 

使用提取rpm文件时

 rpm2cpio zlib-1.2.3-3.i386.rpm | cpio -idv 

共享库的创build大小为73836字节,所以我认为这个大小是正确的。 但是,大多数其他安装上的相同文件的大小为75284字节。

有人知道这是为什么吗?

问候,斯蒂芬

可能是prelink 。

您可以使用以下命令来确定RPM提供的文件是否已在文件系统上进行修改:

 rpm -qVv zlib.i386 

它会产生类似于这样的结果:

 [msavona@admina03:~]$ rpm -qVv zlib.i386 ........ /usr/lib/libz.so.1 ........ /usr/lib/libz.so.1.2.3 ........ /usr/share/doc/zlib-1.2.3 ........ d /usr/share/doc/zlib-1.2.3/README 

其中的时间段代表:文件大小,模式,md5校验和,符号链接,设备,用户,组,修改时间

如果您看到如下所示的内容:

 S.5..... /usr/lib/libz.so.1.2.3 

然后,文件大小和MD5校验和在RPM提供的文件和驻留在文件系统上的文件之间是不同的。

如果文件系统上的文件确实有所不同,则外部(RPMpipe理之外)的某个内容会更改此文件。

在RHEL5系统(zlib-1.2.3-3.i386包)上,这是我的文件的样子(从rpm -q –dump zlib.i386):

 /usr/lib/libz.so.1.2.3 73836 1153298282 02864132ee9f24adcf3502be355c633b 0100755 root root 0 0 0 X