Installation einer bestimmten Paketversion mit yum

18

Ich habe ein Fedora-System mit Postgres-Version 8.3 und möchte wegen eines Kompatibilitätsproblems ein Downgrade auf 8.2 durchführen. Ich habe yum für alles verwendet, aber es ist das erste Mal mit diesem Paketmanager und ich weiß nicht, wie ich ein Downgrade durchführen soll.

Wie kann ich es also veranlassen, mir eine bestimmte Version eines Pakets zu geben?

BEARBEITEN: Ich habe es geschafft, dies zum Laufen zu bringen, indem ich die spezifischen Pakete gemäß dem Vorschlag von skymt heruntergeladen und ihren GPG-Schlüssel installiert habe. Alles was ich tun musste war

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

Und so weiter. Dies war jedoch ziemlich klobig und ich hoffe immer noch, dass es einen einfacheren Weg gibt. Wenn jemand weiß, wie er YUM dazu bringt, auf eine bestimmte Version abzuzielen, ohne darauf zurückzugreifen, lass es mich bitte wissen, damit ich dies das nächste Mal tun kann.

Eli Courtwright
quelle

Antworten:

4

In Centos habe ich folgende Schritte ausgeführt:

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

Fügen Sie in den Abschnitten "on Base" und "Update" die nächsten Zeilen hinzu exclude = postgresql * (dann aktualisieren Sie nicht aus dem normalen Repository für 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*

Laden Sie dann die gewünschte Version herunter. Siehe 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

Jetzt haben Sie ein weiteres Repo in Ihrer Datei /etc/yum.repos.d/pgdg-82-centos.repo.

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

Wenn Sie dann postgres installieren, werden Centos von yum.pgsqlrpms.org/ übernommen.

yum install postgresql postgresql-server
Oscar Raig Colon
quelle
19

Aus der 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

Möglicherweise müssen Sie die neuere Version manuell entfernen und dann die ältere installieren.

EmmEff
quelle
Meine Manpage für yum hat diesen Bereich nicht. Außerdem hat meine Version von yum keinen "remove" -Befehl und verwendet stattdessen "erase". Schließlich habe ich dies für postgresql-8.2.10.i386 und jede Variation davon ausprobiert, die ich mir ausgedacht habe, und es hat nicht funktioniert.
Eli Courtwright
2

Verwenden Sie die Upgrade- Option und geben Sie die Versionsnummer an:

yum upgrade postgresql-8.2.10

Überprüfen Sie die Abhängigkeitsliste, bevor Sie Y drücken . Möglicherweise müssen Sie der Upgrade-Liste weitere Pakete hinzufügen.

Álvaro González
quelle
1

Ein kurzer Blick auf die Manpage ergab keine solche Option. Es scheint, dass sie das noch nicht hinzugefügt haben; Yum ist noch ein recht junger Paketmanager.

Laden Sie stattdessen die relevanten RPMs herunter und installieren Sie sie manuell .


quelle
0

Ich habe gehört, dass der Smart Package Manager dies kann. (hatte noch keine Gelegenheit, es zu versuchen). Es ist bekannt, dass Yum kein Downgrade unterstützt.

smart ist auf fedora verfügbar.


quelle