ทุกครั้งที่ฉันติดตั้งบางสิ่งด้วย yum มันจะพยายามติดตั้งแพคเกจทั้งรุ่น x86_64 และ i386 หากมีให้ใช้งานทั้งคู่ มีวิธีใดบ้างที่ฉันสามารถห้ามไม่ให้ระบุส่วนโค้งของแพ็คเกจได้?
ทุกครั้งที่ฉันติดตั้งบางสิ่งด้วย yum มันจะพยายามติดตั้งแพคเกจทั้งรุ่น x86_64 และ i386 หากมีให้ใช้งานทั้งคู่ มีวิธีใดบ้างที่ฉันสามารถห้ามไม่ให้ระบุส่วนโค้งของแพ็คเกจได้?
คำตอบ:
เพิ่มmultilib_policy = ดีที่สุดสำหรับ/etc/yum.confของคุณ
ตอนนี้ยัมจะพยายามติดตั้งแพ็คเกจ "ดีที่สุด" สำหรับระบบของคุณและจะติดตั้งเพียงอันเดียวเท่านั้น (ตราบใดที่มีให้)
สมมติว่าคุณอยู่ในระบบ 64 บิต yum จะพยายามติดตั้ง package.x86_64 ก่อนหากไม่มีอยู่ระบบจะกลับไปใช้ i386 และ noarch
การตั้งค่าเริ่มต้นคือmultilib_policy = allซึ่งหมายถึงการติดตั้งส่วนโค้งที่เป็นไปได้ทั้งหมด
ฉันใช้ตัวเลือกexactarch = 1ใน/etc/yum.confมาระยะหนึ่งแล้วมันก็ใช้งานได้สำหรับฉัน
มันยังช่วยให้คุณสามารถระบุ arch ด้วยตนเอง แต่ถ้าคุณไม่ติดตั้งจะติดตั้งเฉพาะ x86_64 ไม่ใช่ทั้งสองอย่าง
ตามel6คู่มือyum.conf (5) :
exactarch Either ‘1’ or ‘0’. Set to ‘1’ to make yum update only update the architectures of packages that you have installed. ie: with this enabled yum will not install an i686 package to update an i386 package. Default is ‘1’.
...
multilib_policy Can be set to ’all’ or ’best’. All means install all possible arches for any package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, if it is available. Best means install the best arch for this platform, only.
BTW ทั้งmultilib_policy = bestและexactarch = 1ดูเหมือนจะเป็นค่าเริ่มต้นในขณะนี้
ใช้ฟังก์ชันแยกใน yum.conf:
exclude=*.i386 *.i686
exclude=*.i?86
(/etc/yum.conf) ด้วยวิธีนี้การค้นหายำจะไม่แสดงรายการแพ็คเกจ 32 บิต
มันจะพยายามติดตั้งรุ่น i386 หากคุณติดตั้งรุ่น x86_64 แล้ว
ให้ความสนใจว่าถ้าคุณใช้แยกใน yum.conf คุณสามารถยกเว้นแพ็คเกจที่มีอยู่ใน arch i386 เท่านั้น
วิธีที่ปลอดภัยกว่าคือการขอโค้งอย่างชัดเจนในเวลาติดตั้ง :
yum install package.x86_64
-x, --exclude = package ไม่รวมแพ็กเกจเฉพาะโดยใช้ชื่อหรือ glob จากการอัพเดตในที่เก็บทั้งหมด ตัวเลือกการกำหนดค่า: ไม่รวม
--disableexcludes = [all | main | repoid] ปิดการใช้งานการแยกที่กำหนดไว้ในไฟล์ปรับแต่งของคุณ ใช้หนึ่งในสามตัวเลือก: ทั้งหมด == ปิดการใช้งานทั้งหมดไม่รวม main == ปิดการใช้งานไม่รวมที่กำหนดไว้ใน [main] ใน yum.conf repoid == ปิดการใช้งานไม่รวมที่กำหนดไว้สำหรับ repo
ด้านบนจากคนที่คุณสามารถใช้หรือคุณสามารถติดตั้ง yumex ซึ่งให้ gui คุณสามารถเลือกรอบต่อนาทีที่คุณต้องการติดตั้ง
สิ่งที่ดีสำหรับฉันคือการลบแพ็คเกจ ix86 ทั้งหมดออกจากเครื่อง ตอนนี้มันไม่ขอให้ฉันติดตั้งอะไร 32 บิต
ก่อนติดตั้ง. rpmmacros ของคุณเช่นนี้:
cat ~/.rpmmacros
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
จากนั้นเรียกใช้สิ่งนี้ (ฉันถือว่าทุบตี):
rpm -qa | egrep "i.86$"
นั่นจะให้รายการที่ไม่ใช่ x86_64 rpms ที่ติดตั้งอยู่ในปัจจุบัน คุณสามารถลบพวกเขาทั้งหมดด้วยสิ่งนี้:
rpm -e $(rpm -qa | egrep "i.x86$")
ตอนนี้คุณมีระบบ 64 บิตที่บริสุทธิ์แล้ว
-Dave