ฉันจะสั่งให้ yum ติดตั้งแพ็คเกจ X รุ่นใดรุ่นหนึ่งได้อย่างไร


226

หากมี RPM ที่กำหนดสองเวอร์ชัน (ขึ้นไป) ที่มีอยู่ในที่เก็บ YUM ฉันyumจะสั่งให้ติดตั้งเวอร์ชันที่ฉันต้องการได้อย่างไร

เมื่อมองผ่านบริการสร้าง Koji ฉันสังเกตว่ามีหลายรุ่น

    เอสเอส # 1

คำตอบ:


310

หากต้องการดูว่ามีรุ่นใดที่yumคุณสามารถใช้--showduplicatesสวิตช์นี้ได้ มันให้รายการเช่น "ชื่อแพคเกจเวอร์ชั่นสถาปัตยกรรม":

$ yum --showduplicates list httpd | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
 * fedora: mirror.steadfast.net

Available Packages
httpd.x86_64                        2.4.6-6.fc20                         fedora 
httpd.x86_64                        2.4.10-1.fc20                        updates

เท่าที่ติดตั้งเวอร์ชันใด? คุณสามารถผนวกข้อมูลรุ่นต่อท้ายชื่อของแพ็กเกจลบชื่อสถาปัตยกรรมเช่น:

$ sudo yum install <package name>-<version info>

ตัวอย่างเช่นในกรณีนี้ถ้าฉันต้องการติดตั้งเวอร์ชั่นเก่ากว่า 2.4.6-6 ฉันจะทำสิ่งต่อไปนี้:

$ sudo yum install httpd-2.4.6-6

นอกจากนี้คุณยังสามารถรวมข้อมูลการเปิดตัวเมื่อระบุแพคเกจ ในกรณีนี้เนื่องจากฉันกำลังติดต่อกับ Fedora 20 (F20) ข้อมูลการเปิดตัวจะเป็น "fc20" และข้อมูลสถาปัตยกรรมด้วย

$ sudo yum install httpd-2.4.6-6.fc20
$ sudo yum install httpd-2.4.6-6.fc20.x86_64

repoquery

หากคุณไม่แน่ใจว่าคุณกำลังสร้างข้อโต้แย้งที่ถูกต้องคุณสามารถปรึกษาได้repoqueryเช่นกัน

$ sudo yum install yum-utils  # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*
httpd-0:2.4.6-6.fc20.x86_64
httpd-0:2.4.10-1.fc20.x86_64

กำลังดาวน์โหลดและติดตั้ง

คุณยังสามารถใช้หนึ่งในตัวเลือกต่อไปนี้เพื่อดาวน์โหลด RPM เฉพาะจากเว็บจากนั้นใช้yumเพื่อติดตั้ง

$ yum --downloadonly <package>
-or-
$ yumdownloader <package>

จากนั้นติดตั้งตามต้องการ:

$ sudo yum localinstall <path to rpm>

ถ้าฉันต้องการดาวน์โหลดทุกสิ่งที่แพ็คเกจ X ต้องการ?

$ yumdownloader --resolve <package>

ตัวอย่าง

$ yumdownloader --resolve vim-X11
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
--> Running transaction check
---> Package vim-X11.x86_64 2:7.3.315-1.fc14 set to be reinstalled
--> Finished Dependency Resolution
vim-X11-7.3.315-1.fc14.x86_64.rpm                              | 1.1 MB     00:01

ขอให้สังเกตว่ามันกำลังทำการตรวจสอบการพึ่งพาแล้วดาวน์โหลดชิ้นส่วนที่ขาดหายไป ดูคำตอบของฉันที่ครอบคลุมมันในรายละเอียดเพิ่มเติมได้ที่นี่: วิธีดาวน์โหลดไฟล์จาก repo และติดตั้งในภายหลังโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต .

อ้างอิง


1
ผมไม่คิดว่ามันทำงานสำหรับแพคเกจระหว่างเวอร์ชันล่าสุดอยู่และรุ่นเริ่มต้นสำหรับระบบปฏิบัติการอยู่@updates @fedoraตัวอย่างเช่นถ้าคุณพยายามที่จะติดตั้งhttpd-2.4.8-1, yumจะบอกว่าแพคเกจไม่สามารถใช้ได้
คำถามล้นเมื่อ

@QuestionOverflow - ไม่ติดตาม รุ่นนั้นไม่แสดงว่าพร้อมใช้งานใน repo
slm

1
ให้ฉันลองอีกครั้งพร้อมตัวอย่างจริงจากบันทึกยำของฉัน python-libs-2.7.5-12.fc20.x86_64ติดตั้งครั้งเดียวในคอมพิวเตอร์ของฉัน แต่ได้ถูกแทนที่ สมมติว่าตอนนี้ฉันต้องการที่จะติดตั้งแพคเกจนี้โดยเฉพาะจะบอกว่าyumdownloader python-libs-2.7.5-12* No Match for argument python-libs-2.7.5-12* Nothing to downloadสิ่งที่ฉันพยายามจะพูดคือเมื่อแพ็คเกจใหม่มาถึงแพคเกจเก่าจะไม่สามารถเข้าถึงได้จากยำ คุณสามารถติดตั้งเฉพาะแพ็คเกจล่าสุดหรือเวอร์ชันเริ่มต้นเท่านั้น
คำถามมากเกิน

2
@QuestionOverflow - ในสถานการณ์นั้นฉันคิดว่าคุณต้องใช้yum downgrade ...หากแพ็คเกจได้รับการติดตั้งแล้วและคุณกำลังพยายามที่จะกลับไปใช้มันในภายหลัง ใน QI ของฉันกำลังพยายามที่จะแสดงวิธีหนึ่งจะเลือกแพคเกจรุ่นเฉพาะที่ยังไม่ได้ติดตั้ง docs.fedoraproject.org/en-US/Fedora/14/html/…
slm

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

6

ตัวเลือกอื่นคุณสามารถดาวน์โหลดrpmไฟล์จากนั้นแนะนำyumให้ทำlocalinstall:

yum localinstall /path/to/package.rpm

สถานที่ที่ดีในการรับแพ็คเกจที่คุณต้องการคือ rpmfind.com และค้นหาชื่อแพ็คเกจ


มี URL ที่ประกอบด้วยไฟล์ rpm ทุกเวอร์ชันหรือไม่
คำถามมากเกิน

@QuestionOverflow: rpmfind.net
cuonglm

4
นอกจากนี้ยังมีyum --downloadonly <package>ตามมาด้วยyum localinstall <path to package>เช่นกัน คุณสามารถใช้ยูทิลิตี้นี้ได้yumdownloader <package>เช่นกัน
slm

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