RHEL5: ห้ามติดตั้งแพ็คเกจ i386 บนระบบ 64 บิตหรือไม่


13

ทุกครั้งที่ฉันติดตั้งบางสิ่งด้วย yum มันจะพยายามติดตั้งแพคเกจทั้งรุ่น x86_64 และ i386 หากมีให้ใช้งานทั้งคู่ มีวิธีใดบ้างที่ฉันสามารถห้ามไม่ให้ระบุส่วนโค้งของแพ็คเกจได้?

คำตอบ:


16

เพิ่มmultilib_policy = ดีที่สุดสำหรับ/etc/yum.confของคุณ

ตอนนี้ยัมจะพยายามติดตั้งแพ็คเกจ "ดีที่สุด" สำหรับระบบของคุณและจะติดตั้งเพียงอันเดียวเท่านั้น (ตราบใดที่มีให้)

สมมติว่าคุณอยู่ในระบบ 64 บิต yum จะพยายามติดตั้ง package.x86_64 ก่อนหากไม่มีอยู่ระบบจะกลับไปใช้ i386 และ noarch

การตั้งค่าเริ่มต้นคือmultilib_policy = allซึ่งหมายถึงการติดตั้งส่วนโค้งที่เป็นไปได้ทั้งหมด


1
+1 ใช่นั่นคือคำตอบที่ดีที่สุด น่าเสียดายที่คนส่วนใหญ่ไม่ได้เป็นตัวเลือกนี้
knweiss

3

ฉันใช้ตัวเลือก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ดูเหมือนจะเป็นค่าเริ่มต้นในขณะนี้


2

ใช้ฟังก์ชันแยกใน yum.conf:

exclude=*.i386 *.i686

หรือexclude=*.i?86(/etc/yum.conf) ด้วยวิธีนี้การค้นหายำจะไม่แสดงรายการแพ็คเกจ 32 บิต
พื้นฐาน 6

1

มันจะพยายามติดตั้งรุ่น i386 หากคุณติดตั้งรุ่น x86_64 แล้ว

ให้ความสนใจว่าถ้าคุณใช้แยกใน yum.conf คุณสามารถยกเว้นแพ็คเกจที่มีอยู่ใน arch i386 เท่านั้น

วิธีที่ปลอดภัยกว่าคือการขอโค้งอย่างชัดเจนในเวลาติดตั้ง :

yum install package.x86_64

0

-x, --exclude = package ไม่รวมแพ็กเกจเฉพาะโดยใช้ชื่อหรือ glob จากการอัพเดตในที่เก็บทั้งหมด ตัวเลือกการกำหนดค่า: ไม่รวม

--disableexcludes = [all | main | repoid] ปิดการใช้งานการแยกที่กำหนดไว้ในไฟล์ปรับแต่งของคุณ ใช้หนึ่งในสามตัวเลือก: ทั้งหมด == ปิดการใช้งานทั้งหมดไม่รวม main == ปิดการใช้งานไม่รวมที่กำหนดไว้ใน [main] ใน yum.conf repoid == ปิดการใช้งานไม่รวมที่กำหนดไว้สำหรับ repo

ด้านบนจากคนที่คุณสามารถใช้หรือคุณสามารถติดตั้ง yumex ซึ่งให้ gui คุณสามารถเลือกรอบต่อนาทีที่คุณต้องการติดตั้ง

http://www.yum-extender.org/blog/


ฉันรู้เกี่ยวกับการยกเว้นฉันไม่ต้องการพิมพ์พวกเขาทุกครั้งและไม่ต้องการสร้างชื่อแทน ฉันไม่คิดว่าการติดตั้ง i386 บนระบบ 64 บิตเป็นค่าเริ่มต้นเป็นสิ่งที่ดี
Nikolai Prokoschenko

ในกรณีที่คุณเลือกจาก GUI ว่าตัวเลือกที่ดีกว่า
Rajat

0

สิ่งที่ดีสำหรับฉันคือการลบแพ็คเกจ 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


-3

รายการ i386

yum list installed | grep i386

และตอนนี้คุณสามารถลบหรืออัปเดตเป็น x86_64


1
สิ่งนี้ไม่ตอบคำถาม
สเวน

แม้ว่ามันอาจจะมีประโยชน์ในการแก้ไขสถานการณ์ แต่นั่นไม่ใช่คำตอบสำหรับคำถามเกี่ยวกับวิธีการป้องกันไม่ให้ติดตั้งในตอนแรก ...
HBruijn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.