ฉันกำลังพยายามติดตั้ง winswitch บน CentO 6 ต้องใช้ 'nxagent' แต่ใน centos ชื่อแพคเกจคือ 'nx' มีวิธีบอก yum ให้ข้ามการตรวจสอบการพึ่งพา 'nxagent' (ฉันติดตั้ง 'nx' ไว้แล้ว) หรือไม่ การระบุ --skip-broken ข้ามสิ่งทั้งหมด
ฉันกำลังพยายามติดตั้ง winswitch บน CentO 6 ต้องใช้ 'nxagent' แต่ใน centos ชื่อแพคเกจคือ 'nx' มีวิธีบอก yum ให้ข้ามการตรวจสอบการพึ่งพา 'nxagent' (ฉันติดตั้ง 'nx' ไว้แล้ว) หรือไม่ การระบุ --skip-broken ข้ามสิ่งทั้งหมด
คำตอบ:
โดยทั่วไปyum
ไม่มีตัวเลือกในการเพิกเฉยแพ็กเกจเดียวจากการอ้างอิง ตัวเลือก--skip-broken
ละเว้นการอ้างอิงทั้งหมดที่ไม่ได้แก้ไข
คุณสามารถลองได้yum --exclude=packagename
แต่จะแยกแพคเกจเฉพาะตามชื่อหรือ glob จากการอัปเดตในที่เก็บทั้งหมดไม่ใช่จากการขึ้นต่อกัน
--exclude
มิได้--skip-broken
ช่วยหนึ่งบายพาสหรือการอ้างอิงมากขึ้นในทางที่rpm --nodeps
ไม่
rpm
คำสั่งมี--nodeps
ตัวเลือกที่คุณสามารถใช้ สิ่งที่ท้าทายคือrpm
ตัวเองไม่ได้ตระหนักถึงที่เก็บยำ คำสั่งต่อไปนี้จะติดตั้งหรืออัปเดตแพ็กเกจโดยไม่สนใจการพึ่งพา แต่ค้นหา URL ดาวน์โหลดจากที่เก็บrepoquery
ซึ่งอยู่ในแพ็คเกจyum-utils
โดยอัตโนมัติ
rpm -Uvh --nodeps $(repoquery --location winswitch)
หลังจากนั้นปกติyum update
จะประสบความสำเร็จโดยไม่มีข้อผิดพลาดในการพึ่งพา
ดูเหมือนว่าคุณกำลังพยายามติดตั้งแพคเกจที่ไม่ได้ออกแบบมาสำหรับระบบปฏิบัติการเช่นถ้ามันถูกออกแบบมาสำหรับ CentOS มันจะต้องnx
ถูกต้อง
วิธีแก้ปัญหาอื่นสำหรับปัญหาคือการสร้างและติดตั้งแพคเกจ RPM shim ขนาดเล็กที่ไม่มีไฟล์ แต่ในไฟล์ spec มีบรรทัดต่อไปนี้ (ในหมู่อื่น ๆ ):
requires: nx
provides: nxagent
ด้วยวิธีนี้ควรพึงพอใจ แต่ก็อาจจะคาดหวังว่าไฟล์จะอยู่ในตำแหน่งที่แตกต่างระหว่างnxagent
แพ็คเกจที่คาดว่าจะติดตั้งและnx
แพ็คเกจที่ CentOS มอบให้
คุณยังสามารถใช้ rpmrebuild เพื่อเปลี่ยนข้อมูลเมตาของ rpm ให้ชี้ไปที่ชื่อแพ็คเกจใหม่ นี่จะเป็นแพ็คเกจ "ของคุณ" แต่จะสะอาดกว่าเดิมขึ้นอยู่กับการพึ่งพารอบต่อนาที ไม่มีข้อเสียในการใช้ - ฉันคิดว่า
yum --exclude
ไม่ทำงานกับการพึ่งพา