% triggerin é executado após o seu RPM ser instalado se o destino for já instalado e depois que o destino for instalado enquanto o seu RPM estiver instalado
% triggerun é executado antes que seu RPM seja desinstalado se o destino for instalado e antes que o destino seja desinstalado enquanto o seu RPM estiver instalado
% triggerpostun é executado após o destino ser desinstalado enquanto seu RPM é instalado, mas não é executado se o seu RPM for desinstalado
Dito isto, você poderia usar% triggerin com um condicional para evitar a execução do código quando você instala o A. Você pode conseguir isso atribuindo um valor a uma variável na seção% pre.
algo como isto:
% define install_ed% (rpm -qa | grep A)
% triggerin
if [$ install_ed ne "A"]; então ...
Eu não estou em uma máquina baseada em rpm agora, então não posso testar a solução, mas ela deve funcionar