ยำติดตั้งแพคเกจโดยไม่ต้องปรับปรุงแพคเกจอื่น ๆ หรือล้มเหลว ... ?


10

มีวิธีบอกyumให้ติดตั้งแพคเกจหรือไม่เลือกรุ่นของแพ็คเกจที่จะพึงพอใจจากการพึ่งพาที่ติดตั้งอยู่ในปัจจุบันหรือไม่?

ตัวอย่างเช่นถ้าฉันติดตั้งแพคเกจ PECL และผมในขณะนี้ได้ติดตั้งphp-5.4.11แต่รุ่นใหม่php-5.4.14สามารถใช้ได้ แทนที่จะติดตั้งแพ็คเกจใหม่ (และอัปเดตแพ็คเกจ php ทั้งหมดเป็น 5.4.14) ฉันแค่ต้องการให้เลือกแพ็คเกจรุ่นเก่าที่ฉันขอให้ติดตั้งโดยไม่ต้องอัปเดตแพ็คเกจอื่น ๆ ทั้งหมด (หรือล้มเหลวหากไม่สามารถทำได้)

นี่เป็นกรณีเฉพาะที่ฉันรู้ว่าฉันสามารถแยกหรือแก้ไขแพ็คเกจ php แต่ฉันกำลังมองหาตัวเลือกทั่วไปที่จะใช้กับการติดตั้งใด ๆ

สิ่งที่ต้องการ:

yum install php-pecl-xxxx --no-updates

คำตอบ:


10

โซลูชั่นชั่วคราว:

ใช้-Cธง:

sudo yum install foobar -C

ทางออกถาวร:

ใช้การmetadata_expireตั้งค่าสถานะในyum.confของคุณเพื่อควบคุมสิ่งนี้

แก้ไข/etc/yum.confและตั้งค่า

metadata_expire=15d

คุณสามารถใช้d, เอชหรือม.เพื่อกำหนดค่าเวลาในวันชั่วโมงหรือนาที

โบนัส: นี่คือเอกสาร:

metadata_expire คือเวลา (เป็นวินาที) หลังจากนั้นข้อมูลเมตาจะหมดอายุ ดังนั้นหากเมตะดาต้าที่ดาวน์โหลดในปัจจุบันน้อยกว่าหลายวินาทีเก่าแล้ว yum จะไม่อัปเดตเมทาดาทาเทียบกับที่เก็บ หากคุณพบว่า yum ไม่ได้ดาวน์โหลดข้อมูลเกี่ยวกับการปรับปรุงบ่อยเท่าที่คุณต้องการลดค่าของตัวเลือกนี้ นอกจากนี้คุณยังสามารถเปลี่ยนจากค่าเริ่มต้นของการใช้วินาทีเป็นวันชั่วโมงหรือนาทีโดยต่อท้ายโฆษณา h หรือ m ตามลำดับ ค่าเริ่มต้นคือ 6 ชั่วโมงเพื่อชมเชย yum-updatesd ทำงานหนึ่งครั้งต่อชั่วโมง นอกจากนี้ยังเป็นไปได้ที่จะใช้คำว่า "ไม่เคย" ซึ่งหมายความว่าข้อมูลเมตาจะไม่มีวันหมดอายุ โปรดทราบว่าเมื่อใช้ไฟล์ metalink metalink จะต้องใหม่กว่า metadata สำหรับที่เก็บเสมอ เนื่องจากการตรวจสอบความถูกต้องดังนั้นการหมดเวลานี้จึงนำไปใช้กับไฟล์ metalink โปรดทราบว่า "ไม่เคย" ไม่ได้แทนที่ "yum clean expire-cache"


0

ยังไม่พบตัวเลือกใด ๆ ณ ขณะนี้ อย่างไรก็ตามหากคุณต้องการติดตั้งแพคเกจโดยไม่ต้องอัพเกรดฉันขอแนะนำให้ดาวน์โหลดรุ่นต่อนาทีของรุ่นเดียวกันแล้วติดตั้ง


0

ในแพคเกจที่มีเครื่องมือที่เรียกว่าyum-utils yumdownloaderคุณสามารถใช้มันเพื่อดาวน์โหลดจาก repos โดยไม่ต้องติดตั้ง สวิตช์มาตรฐานทั้งหมดเช่น--disablerepoนำไปใช้ ดูหน้าคนสำหรับข้อมูลเพิ่มเติมเกี่ยวกับมัน

ฉันคิดว่าคุณสามารถดาวน์โหลด RPM แล้วทำสิ่งที่คุณต้องการโดยใช้ RPM ได้โดยตรง


1
นี่เป็นส่วนหนึ่งของระบบการติดตั้งแพคเกจอัตโนมัติปัญหาคือเราไม่ต้องการให้ยัม 'ติดตั้งล่าสุด' และ 'อัปเดตทุกอย่างที่จำเป็น' เราแค่อยากให้มันติดตั้งแพ็คเกจที่เข้ากันได้กับสิ่งที่ติดตั้งแล้ว โดยทั่วไปเป็นตัวเลือกในการติดตั้งหรือติดตั้ง xxx-no-updates
Clint Priest

0

หากแพ็คเกจรุ่นเก่ายังอยู่ในที่เก็บ yum ของคุณคุณก็สามารถเรียกใช้yum install packagename-version-release.archแล้วมันจะติดตั้งรุ่นเก่ากว่าโดยไม่พยายามอัพเกรดเป็นรุ่นล่าสุด คุณจะต้องใช้ชื่อเต็มเวอร์ชันรุ่นและส่วนโค้งหากมีหลายรุ่นและสถาปัตยกรรมใน repo yum ของคุณ คุณสามารถรับข้อมูลทั้งหมดได้โดยเรียกใช้yum list available 'packagename*'เพื่อค้นหาแพ็คเกจทั้งหมดที่เริ่มต้นด้วย 'packagename' yum downgrade packagename1 packagename2ถ้าคุณได้มีการจัดการที่จะอัพเกรดแพคเกจของคุณและต้องการที่จะลดระดับการปล่อยเก่าคุณสามารถเรียกใช้ คุณจะต้องรวมรายการของแพ็คเกจทั้งหมดที่คุณต้องการลดระดับเนื่องจากมันอาจเกี่ยวข้องกับการอ้างอิงจำนวนมาก

หากรีลีสที่เก่ากว่าไม่ได้อยู่ในที่เก็บ yum ของคุณเพียงแค่ดาวน์โหลดจากทุกที่ที่คุณพบแพ็คเกจเก่าและติดตั้งyum install /path/to/package.rpmแม้ว่าฉันจะระมัดระวังในการติดตั้งแพ็กเกจจากแหล่งที่ไม่น่าเชื่อถือ


แต่มันจะมีประโยชน์มากกว่านี้มากหากyumเลือกเวอร์ชั่นที่ใช้งานร่วมกันได้ล่าสุด
forcefsck

สามารถทำได้ แต่มันขึ้นอยู่กับผู้ทำบรรจุหีบห่อเพื่อกำหนดข้อกำหนดที่เหมาะสม
jsbillings

บางครั้งข้อกำหนดนั้นถูกห่อด้วยแพ็คเกจเก่า แต่ยำยืนยันว่าจะเลือกเฉพาะรุ่นล่าสุดเท่านั้น เช่น. ในกรณีที่อธิบายไว้ข้างต้นมันเป็นไปได้ที่ yum จะเลือก php-pecl-5.4.11 โดยอัตโนมัติหากระบบเป็นเวอร์ชั่นที่ล็อคไว้ที่ php-5.4.11 มันอาจเป็นปัญหาสำหรับระบบอัตโนมัติ
forcefsck

ยำจะอัปเดตเป็นเวอร์ชันล่าสุดเท่านั้นหากไม่มีการอ้างอิงกับเวอร์ชันเก่า ในกรณีข้างต้นข้อกำหนดรุ่นไม่เคยถูกต้องการโดยแพ็คเกจ pecl ยำไม่สามารถอ่านความคิดของคุณและเลือกรุ่นใดก็ได้เว้นแต่คุณจะระบุว่าเป็นรุ่นใดในรุ่นที่ต้องการหรือโดยรุ่นล็อคอินของแพ็คเกจ pecl และ php
jsbillings

สำหรับตัวอย่างนี้โดยเฉพาะอย่างยิ่งหาก php ไม่สามารถอัพเกรดได้ (ทั้งรุ่นล็อคหรือไม่มีแพ็คเกจใหม่ใน repos) yum สามารถเลือกเวอร์ชั่นล่าสุดของ pecl ที่ไม่ต้องการการอัพเกรด php มันไม่ได้เป็นการอ่านใจจริง ๆ ฉันเชื่อว่ามันเป็นสิ่งที่ฉลาดแล้ว อีกครั้งนี่เป็นปัญหาสำหรับการทำงานอัตโนมัติเมื่อคุณต้องการติดตั้งแพ็กเกจพิเศษโดยไม่ต้องอัพเกรดระบบของคุณครึ่งและคุณต้องการให้ยัมฉลาดพอที่จะจัดการกับคำร้องขอเช่นถ้ามีหลายเวอร์ชันให้เลือกรุ่นล่าสุดที่เข้ากันได้กับแพ็คเกจที่ติดตั้งแล้ว ด้วยเหตุผลใดก็ตามที่ไม่สามารถอัพเกรดได้
forcefsck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.