Am 3 pachete corepkg
, corepkg-optB
și corepkg-optC
. corepkg-optC
depinde de corepkg-optB
, corepkg-optB
depinde de corepkg
.
Am creat un repo din aceste 3 pachete. Când rulez yum install corepkg-optC
, și corepkg
a eșuat, yum instalări corepkg-optB
și corepkg-optC
. Nu este ceea ce mi-aș dori.
Aș dori corepkg-optB
eşuând dacă corepkg
este eşuată şi corepkg-optC
eşuând dacă corepkg-optB
a eșuat pentru că corepkg
a eșuat.
Fișierul meu de specificații arată așa:
Nume: corepkg
Versiune: 1.0.0
%pretrans
dacă ! grep -q foo /etc/hosts
atunci
iesirea 1
fi
%pachet optB
Necesită: corepkg = 1.0.0
%pachet optC
Necesită: codepkg-optB = 1.0.0
Am încercat Requires, apoi Requires(pre), dar dă-mi același rezultat:
# yum instalează corepkg-optC
eroare: %pretrans(corepkg-1.0.0-1.el7.noarch) scriptlet-ul a eșuat, starea de ieșire 1
Eroare în scriptletul PRETRANS din pachetul rpm corepkg-1.0.0-1.el7.noarch
Instalare: corepkg-optB-1.0.0-1.el7.noarch 1/3
eroare: corepkg-1.0.0-1.el7.noarch: instalare ignorată
Instalare: corepkg-optC-1.0.0-1.el7.noarch 2/3
Verificare: corepkg-optC-1.0.0-1.el7.noarch 1/3
Verificare: corepkg-optB-1.0.0-1.el7.noarch 2/3
Verificare: corepkg-1.0.0-1.el7.noarch 3/3
Instalat:
corepkg-optC.noarch 0:1.0.0-1.el7.noarch
Dependență instalată:
corepkg-optB.noarch 0:1.0.0-1.el7.noarch
A eșuat:
corepkg.noarch 0:1.0.0-1.el7.noarch
Am încercat Requires(pretrans), dar a fost un nonsens, deoarece totul este o singură tranzacție yum.
Toate corepkg sunt ale mele, pot modifica fișierele de specificații. Vreo idee? Mulțumesc!
EDIT: pachetul B și C nu sunt dep, ci mai degrabă ca lucruri suplimentare pentru corepkg. Este similar cu pachetele php-* sau python-*.
Similar pentru că pachetele mele corepkg-optB și corepkg-optC sunt module (fișiere text) și nu înseamnă nimic fără corepkg.
Spun asta pentru că unele pachete php-* funcționează independent.