Arquivos em pacotes RPM

1

Existe algo estranho com pacotes RPM. Os conteúdos listados, enumerados por rpm -ql , diferem dos arquivos realmente apresentados. Por exemplo, eu baixei um openldap-servers-2.4.26-8.fc16.i686.rpm e executei o one-liner:

rpmfile=openldap-servers-2.4.26-8.fc16.i686.rpm; diff <(rpm2cpio $rpmfile | cpio -t | sed -e 's!^\.!!g') <(rpm -ql -p $rpmfile)

Compara o conteúdo do rpm descompactado por rpm2cpio com a saída de rpm -ql

E tenho:

9122 blocks
20a21,22
> /etc/openldap/slapd.conf
> /etc/openldap/slapd.conf.bak
21a24
> /etc/pki/tls/certs/slapd.pem

rpm -ql indica que existem 3 arquivos no pacote que, na verdade, estão ausentes.
Existe uma explicação para isso?

    
por dchirikov 12.01.2013 / 19:39

1 resposta

1

Os pacotes RPM são criados usando um arquivo .spec que contém várias seções que informam ao rpm o que fazer quando instala seu pacote. Os arquivos que você está vendo provavelmente estão sendo criados dinamicamente por rpm quando ele instala o pacote openldap . O comando rpm -ql está realmente lendo o arquivo .spec e informando exatamente o que será instalado, enquanto o comando cpio está apenas descarregando uma lista de arquivos arquivados no .rpm . Se você está realmente curioso, você pode baixar openldap-2.4.26-8.fc16.src.rpm , instalá-lo e olhar para o arquivo .spec para si mesmo, é bastante simples de ler. Um edifício cuidadoso, porém, um caminho incorreto combinado com a execução de rpmbuild como root pode realmente arruinar seu dia.

    
por 13.01.2013 / 05:53