CentOS - bin / * MD5 difere entre hosts idênticos

3

Eu tenho um monte de servidores rodando o CentOS 5.3 de 32 bits. Eles foram todos instalados mais ou menos ao mesmo tempo usando o mesmo método de instalação (CD ou net install).

Recentemente, notei um problema com um dos hosts, que relata erros como os seguintes ao tentar verificar um pacote RPM:

[sagi@server3 ~]$ rpm -qV coreutils 2>&1| grep mkdir
prelink: /bin/mkdir: at least one of file's dependencies has changed since prelinking
S.?.....    /bin/mkdir
[sagi@server3 ~]$

A mensagem de prelink é a que primeiro me chamou a atenção. Aparece frequentemente ao tentar fazer qualquer tipo de operações relacionadas ao RPM. Mas também, o comando verify reporta que há uma incompatibilidade de tamanho para o pacote mkdir, o que eu não entendo.

Eu tentei executar o mesmo comando em alguns dos outros servidores e nenhum deles tem o mesmo problema. O tamanho de / bin / mkdir e a versão de coreutils são idênticos no servidor problemático e em todos os outros hosts, por exemplo:

[sagi@server3 ~]$ rpm -q coreutils
coreutils-5.97-19.el5
[sagi@server3 ~]$ ls -l /bin/mkdir
-rwxr-xr-x 1 root root 29852 Jan 21  2009 /bin/mkdir
[sagi@server3 ~]$

[sagi@server4 ~]$ rpm -q coreutils
coreutils-5.97-19.el5
[sagi@server4 ~]$ ls -l /bin/mkdir
-rwxr-xr-x 1 root root 29852 Jan 21  2009 /bin/mkdir
[sagi@server4 ~]$

Mas o MD5 do / bin / mkdir é diferente em cada host:

server1  f62677e910d9a3fc3605be5e3e59bb4f  /bin/mkdir
server2  7678ac9fdf01a80e4dc45cb8a6929e2b  /bin/mkdir
server3  4fe934b9ebd16ba773cf347ebf803225  /bin/mkdir
server4  24800902f32af19879ed5fda0f3ea9d0  /bin/mkdir
server5  a0a02615022c7f607709792a5ceaad0e  /bin/mkdir

E assim por diante. / bin / mkdir é apenas uma amostra, eu encontrei o mesmo problema com todos os utilitários que eu verifiquei.

Portanto, tenho duas perguntas: 1. Por que o MD5 do mesmo arquivo seria diferente em diferentes máquinas? 2. Qual pode ser a causa da mensagem de pré-toque mencionada acima?

Atualização: Eu consegui me livrar dos erros de prelink executando manualmente o script /etc/cron.daily/prelink. Eu ainda não entendo qual é a causa do diferente MD5.

    
por sagi 06.09.2009 / 09:59

2 respostas

5

Citando prelink manpage:

prelink is a program that modifies ELF shared libraries and ELF dynamically linked binaries […]

    
por 06.09.2009 / 10:12
6

Prelink faz exatamente isso. Ele é executado em todas as bibliotecas vinculadas dinamicamente a um aplicativo e modifica o binário para que o processo de vinculação em tempo de execução seja mais eficiente. Portanto, se você atualizar uma das bibliotecas vinculadas, precisará executar novamente o prelink. O aviso foi apenas avisando que era esse o caso.

BTW, o prelink tem uma opção '--md5' que você pode usar. A saída desse comando deve ser a mesma em todos os seus hosts.

    
por 06.09.2009 / 15:21

Tags