我有一台 Fedora 系统,安装的是 Postgres 8.3 版,由于兼容性问题,我想降级到 8.2 版。我一直使用 yum 来做所有事情,但这是我第一次使用这个包管理器,我不知道如何降级。
那么我该如何告诉它给我一个包的特定版本呢?
编辑:我设法通过以下方式使它工作下载根据 skymt 的建议安装特定的软件包,并安装他们的 GPG 密钥。我所要做的就是
rpm --import RPM-GPG-KEY-PGDG
yum localinstall postgresql-8.2.10-1PGDG.f9.i386.rpm
yum localinstall .....
等等。但是,这相当笨重,我仍然希望有更简单的方法。如果有人知道如何让 YUM 定位特定版本而不诉诸于此,请告诉我,以便我下次能够做到这一点。
答案1
在 Centos 中我执行了以下步骤:
在 /etc/yum.repos.d/CentOS-Base.repo 上。
在 Base 和 Update 部分添加下一行 exclude=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*
然后下载您想要的版本。请参阅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
现在您的 /etc/yum.repos.d/pgdg-82-centos.repo 中有另一个 repo。
ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Media.repo pgdg-82-centos.repo
然后如果你安装 postgres,centos 将从 yum.pgsqlrpms.org/ 获取
yum install postgresql postgresql-server
答案2
来自手册页:
杂项
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
您可能必须手动删除新版本,然后安装旧版本。
答案3
使用升级选项并指定版本号:
yum upgrade postgresql-8.2.10
在点击之前检查依赖项列表是。您可能需要将其他软件包添加到升级列表中。
答案4
我听说聪明的包管理器可以做到这一点。(还没有机会尝试)。众所周知,Yum 不支持降级。
smart 在 fedora 上可用。