如何指示 yum 安装特定版本的软件包 X?

如何指示 yum 安装特定版本的软件包 X?

如果 YUM 存储库中有给定 RPM 的两个(或更多)版本可用,我如何指示yum安装我想要的版本?

浏览 Koji 构建服务,我注意到有几个版本。

    SS #1

答案1

要查看哪些特定版本可供您使用,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也可以咨询。

$ 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

请注意,它正在执行依赖性检查,然后下载缺失的部分。请参阅我的回答,其中包含更多详细信息:如何从存储库下载文件,并稍后在没有互联网连接的情况下安装它?

参考

答案2

另一种选择,您可以下载rpm文件,然后指示yum执行以下操作localinstall

yum localinstall /path/to/package.rpm

获取所需软件包的好地方是 rpmfind.com 并搜索软件包名称。

相关内容