ฉันมี 3 แพ็คเกจ กก
, corepkg-optB
และ corepkg-optC
. corepkg-optC
ขึ้นอยู่กับ corepkg-optB
, corepkg-optB
ขึ้นอยู่กับ กก
.
ฉันได้สร้าง repo ของ 3 แพ็คเกจนี้แล้ว เมื่อฉันรันการติดตั้ง yum corepkg-optC
, และ กก
ล้มเหลว yum ติดตั้ง corepkg-optB
และ corepkg-optC
. ไม่ใช่สิ่งที่ฉันต้องการ
ฉันต้องการ corepkg-optB
ล้มเหลวถ้า กก
ล้มเหลวและ corepkg-optC
ล้มเหลวถ้า corepkg-optB
ล้มเหลวเพราะ กก
ล้มเหลว.
specfile ของฉันมีลักษณะดังนี้:
ชื่อ: corepkg
เวอร์ชัน: 1.0.0
%พรีทรานส์
ถ้า ! grep -q foo /etc/hosts
แล้ว
ทางออก 1
ไฟ
%แพ็คเกจ optB
ต้องการ: corepkg = 1.0.0
%แพ็คเกจ optC
ต้องการ: codepkg-optB = 1.0.0
ฉันลองใช้ Requires แล้วก็ Requires(pre) แต่ให้ผลลัพธ์เหมือนกัน:
# ยำติดตั้ง corepkg-optC
ข้อผิดพลาด: สคริปต์เล็ต %pretrans(corepkg-1.0.0-1.el7.noarch) ล้มเหลว ออกจากสถานะ 1
ข้อผิดพลาดใน PRETRANS scriptlet ในแพ็คเกจ rpm corepkg-1.0.0-1.el7.noarch
การติดตั้ง : corepkg-optB-1.0.0-1.el7.noarch 1/3
ข้อผิดพลาด: corepkg-1.0.0-1.el7.noarch: ข้ามการติดตั้ง
การติดตั้ง : corepkg-optC-1.0.0-1.el7.noarch 2/3
การตรวจสอบ : corepkg-optC-1.0.0-1.el7.noarch 1/3
การตรวจสอบ : corepkg-optB-1.0.0-1.el7.noarch 2/3
กำลังตรวจสอบ : corepkg-1.0.0-1.el7.noarch 3/3
ติดตั้ง:
corepkg-optC.noarch 0:1.0.0-1.el7.noarch
ติดตั้งการพึ่งพา:
corepkg-optB.noarch 0:1.0.0-1.el7.noarch
ล้มเหลว:
corepkg.noarch 0:1.0.0-1.el7.noarch
ฉันลองใช้ Requires(pretrans) แต่มันไม่สมเหตุสมผลเพราะทุกอย่างเป็นธุรกรรม yum เดียว
corepkg ทั้งหมดเป็นของฉัน ฉันสามารถแก้ไข specfiles ความคิดใด ๆ ขอขอบคุณ!
แก้ไข: แพ็คเกจ B และ C ไม่ใช่ dep แต่เหมือนของเพิ่มเติมสำหรับ corepkg มันคล้ายกับแพ็คเกจ php-* หรือ python-*
คล้ายกันเพราะแพ็คเกจ corepkg-optB และ corepkg-optC ของฉันเป็นโมดูล (ไฟล์ข้อความ) และไม่มีความหมายอะไรเลยหากไม่มี corepkg
ฉันพูดอย่างนั้นเพราะแพ็คเกจ php-* บางแพ็คเกจทำงานแบบสแตนด์อโลน