O rpm-4.8.0 adicionou um bloqueio de arquivo global em /var/lib/rpm/.rpm.lock que impede que uma instalação do rpm seja repetida invocando o rpm em% post.
Veja por que não consigo instalar pacotes com rpm? Eu recebo "bloqueio de transação"
Entretanto, há muito pouca necessidade de ter / usar um bloqueio global entre processos: rpm (e processos que dependem do rpmlib como o yum) dificilmente competem um bloqueio global.
Resposta curta: renomeie o arquivo de bloqueio antes de tentar rpm -q em% post e restaure o arquivo antes de sair% post. A janela de corrida de trava aberta por renomear o arquivo de bloqueio global é muito pequeno na prática.
Observe que o uso de dependências, em vez de invocar o rpm em% pre, é muito melhor solução do que você está tentando.