使用 yum 安装特定的软件包版本

Eli*_*ght 19 installer yum

我有一个带有 8.3 版 Postgres 的 Fedora 系统,由于兼容性问题,我想降级到 8.2。我一直在使用 yum,但这是我第一次使用这个包管理器,我不知道如何降级。

那么我如何告诉它给我一个特定版本的包?

编辑:我设法通过按照skymt的建议下载特定软件包并安装他们的GPG密钥来使其工作。我所要做的就是

rpm --import RPM-GPG-KEY-PGDG
yum localinstall postgresql-8.2.10-1PGDG.f9.i386.rpm
yum localinstall .....

等等。但是,这相当笨拙,我仍然希望有一种更简单的方法。如果有人知道如何让 YUM 以特定版本为目标而不诉诸此,请告诉我,以便我下次能够这样做。

Emm*_*Eff 19

从联机帮助页:

杂项

  Specifying package names

         A package can be referred to for install,update,list,remove  etc
         with any of the following:

          name
          name.arch
          name-ver
          name-ver-rel
          name-ver-rel.arch
          name-epoch:ver-rel.arch
          epoch:name-ver-rel.arch

          For example: yum remove kernel-2.4.1-10.i686
Run Code Online (Sandbox Code Playgroud)

您可能必须手动删除较新的版本,然后再安装较旧的版本。


小智 4

在 Centos 中我按照以下步骤操作:

在 /etc/yum.repos.d/CentOS-Base.repo 上。

在 Base 和 Update 部分添加下一行 except=postgresql* (那么您就不会从 postgres rpm 的普通存储库进行更新)。

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*
Run Code Online (Sandbox Code Playgroud)

然后下载您想要的版本。请参阅http://yum.pgrpms.org/howtoyum.php

wget http://yum.pgrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm
rpm -ivh pgdg-centos-8.3-6.noarch.rpm
Run Code Online (Sandbox Code Playgroud)

现在 /etc/yum.repos.d/pgdg-82-centos.repo 中有另一个存储库。

ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Media.repo  pgdg-82-centos.repo
Run Code Online (Sandbox Code Playgroud)

那么如果你安装 postgres,centos 将从 yum.pgsqlrpms.org/ 获取

yum install postgresql postgresql-server
Run Code Online (Sandbox Code Playgroud)