20

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.

5 Answers 5

4

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
19

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.

1
  • My manpage for yum doesn't have this section. Also, my version of yum doesn't have a "remove" command and uses "erase" instead. Finally, I tried this for postgresql-8.2.10.i386 and every variation thereof which I could come up with and it didn't work. Commented Sep 23, 2008 at 17:05
2

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.

1

A quick look at the man page revealed no such option. It seems they haven't added that yet; Yum is still a fairly young package manager.

Instead, download and manually install the relevant RPMs.

0

I have heard that the smart package manager can do this. (haven't had the opportunity to try it yet). Yum is known not to support downgrading.

smart is available on fedora.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .