Installer une version de package spécifique avec yum

18

J'ai un système Fedora avec Postgres version 8.3 et je souhaite revenir à 8.2 en raison d'un problème de compatibilité. J'utilise yum pour tout, mais c'est ma première fois avec ce gestionnaire de paquets, et je ne sais pas comment rétrograder les choses.

Alors, comment puis-je lui dire de me donner une version spécifique d'un package?

EDIT: J'ai réussi à faire fonctionner cela en suivant en téléchargeant les packages spécifiques selon la suggestion de skymt, plus en installant leur clé GPG. Tout ce que j'avais à faire était

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

Etc. Cependant, c'était assez maladroit et j'espère toujours qu'il existe un moyen plus facile. Si quelqu'un sait comment amener YUM à cibler une version spécifique sans y recourir, faites-le moi savoir afin que je puisse le faire la prochaine fois.

Eli Courtwright
la source

Réponses:

4

Dans Centos, j'ai suivi ces étapes:

Sur /etc/yum.repos.d/CentOS-Base.repo.

sur les sections Base et Update, ajoutez les lignes suivantes exclude = postgresql * (alors vous ne mettez pas à jour à partir du référentiel normal pour 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*

Téléchargez ensuite la version que vous souhaitez. Voir 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

Vous avez maintenant un autre dépôt dans votre /etc/yum.repos.d/ pgdg-82-centos.repo.

ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Media.repo  pgdg-82-centos.repo

alors si vous installez postgres, centos prendra de yum.pgsqlrpms.org/

yum install postgresql postgresql-server
Oscar Raig Colon
la source
19

Depuis la page de manuel:

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

Vous devrez peut-être supprimer manuellement la version la plus récente, puis installer l'ancienne.

EmmEff
la source
Ma page de manuel pour yum n'a pas cette section. De plus, ma version de yum n'a pas de commande "supprimer" et utilise plutôt "effacer". Enfin, j'ai essayé cela pour postgresql-8.2.10.i386 et toutes les variantes de celui-ci que j'ai pu trouver et cela n'a pas fonctionné.
Eli Courtwright
2

Utilisez l' option de mise à niveau et spécifiez le numéro de version:

yum upgrade postgresql-8.2.10

Consultez la liste des dépendances avant de frapper Y . Vous devrez peut-être ajouter d'autres packages à la liste de mise à niveau.

Álvaro González
la source
1

Un rapide coup d'œil à la page de manuel n'a révélé aucune telle option. Il semble qu'ils n'aient pas encore ajouté cela; Yum est toujours un gestionnaire de paquets assez jeune.

À la place, téléchargez et installez manuellement les RPM appropriés .


la source
0

J'ai entendu dire que le gestionnaire de packages intelligent peut le faire. (je n'ai pas encore eu l'occasion de l'essayer). Yum est connu pour ne pas prendre en charge la rétrogradation.

smart est disponible sur fedora.


la source