ฉันกำลังพยายามติดตั้ง 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ไม่ทำงานกับการพึ่งพา