Installing a specific package version with yum
I have a Fedora system with Postgres version 8.3 and I want to downgrade to 8.2 because of a compatibility issue. I've been using yum for everything, but it's my first time with this package manager, and I don't know how to downgrade things.
So how do I tell it to give me a specific version of a package?
EDIT: I managed to get this working by following by downloading the specific packages as per skymt's suggestion, plus installing their GPG key. All I had to do was
rpm --import RPM-GPG-KEY-PGDG
yum localinstall postgresql-8.2.10-1PGDG.f9.i386.rpm
yum localinstall .....
And so on. However, this was fairly clunky and I'm still hoping that there's an easier way. If anyone knows of how to get YUM to target a specific version without resorting to this, please let me know so that I'll be able to do this next time.
Solution 1:
In Centos I did following this steps:
On /etc/yum.repos.d/CentOS-Base.repo.
on Base and Update sections add the next lines exclude=postgresql* (then you don't update from normal repository for 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*
Then download the version that you want. See 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
Now you have another repo in your /etc/yum.repos.d/ pgdg-82-centos.repo.
ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Media.repo pgdg-82-centos.repo
then if you install postgres, centos will take from yum.pgsqlrpms.org/
yum install postgresql postgresql-server
Solution 2:
From the manpage:
MISC
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
You may have to manually remove the newer version and then install the older.
Solution 3:
Use the upgrade option and specify the version number:
yum upgrade postgresql-8.2.10
Check the dependencies list before hitting Y. You might need to add other packages to the upgrade list.