Package-Management

如何指示 yum 安裝特定版本的包 X?

  • August 5, 2019

如果 YUM 儲存庫中有兩個(或更多)版本的給定 RPM,我如何指示yum安裝我想要的版本?

查看 Koji 建構服務,我注意到有幾個版本。

    #1

要查看哪些特定版本可供您yum使用,您可以使用--showduplicatesswitch 。它為您提供了一個類似“包名稱.架構版本”的列表:

$ 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

$ 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

下載和安裝

您還可以使用以下選項之一從 Web 下載特定 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 下載文件,然後在沒有網際網路連接的情況下安裝它?.

參考

引用自:https://unix.stackexchange.com/questions/151689