Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question

migrated from stackoverflow.com Sep 1 '11 at 9:20

This question came from our site for professional and enthusiast programmers.

add comment

5 Answers

up vote 3 down vote accepted

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
share|improve this answer
add comment

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.

share|improve this answer
    
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. –  Eli Courtwright Sep 23 '08 at 17:05
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.