[RHEL/Derivate] Ersatz der mitgelieferten RPMs

Hier findest du die Antworten auf häufig gestellte Fragen.
(kein Schreibrecht für Forenmitglieder!)
Antworten
Xandrian
Erfahrener Benutzer
Beiträge: 1687
Registriert: Mi 23. Nov 2005, 09:17
Wohnort: Bayreuth
Kontaktdaten:

[RHEL/Derivate] Ersatz der mitgelieferten RPMs

Beitrag von Xandrian » Fr 7. Mär 2008, 17:37

Dieses Howto bezieht sich auf RHEL Linux und entsprechende Derivate (Fedora, CentOS, ...). Das Howto wird auf einem CentOS 5 System (x86 (i386)) durchgeführt.

Shellbefehle die mit einem Sharpzeichen (#) beginnen, sind als root User einzugeben. Alternativ kann auch mit dem "sudo"-Befehl gearbeitet werden. Das Howto arbeitet mit dem Paketverwaltungstool "yum". Theoretisch kann es auch "zu Fuss" mit "rpm" durchgeführt werden. Viele Wege führen nach Rom... ;-)


Problemstellung:
RHEL sowie die RH nahen Derivate bringen bereits fertige PostgreSQL Binärpakete mit sich. Diese Pakete sind jedoch i. d. R. schon älter und es werden nur Sicherheitsupdates eingepflegt. Das hat zur Folge, dass Funktionen von neuen Versionen nicht verfügbar sind. Dieses Howto beschreibt, wie man die mitgelieferten Pakete durch Pakete des PostgreSQL Projektes ersetzt. Ziel ist es, die Paketverwaltung durch das Systemeigenetool "yum" durchzuführen.

Achtung! Durch die Verwendung von neuen Versionen auf Produktversionen kann man sich neuen Funktionen auch noch nicht gelöste Probleme (Bugs) einfangen. Die Verwendung ist also nur für erfahrene Anwender gedacht! Ebenfalls kann der Anspruch auf Hilfe bei Supportanfragen bei Verwendung von externen Paketen erlöschen! Dies sollte bei bestehenden Verträgen vorher geklärt werden.


Vorarbeiten:
Sollte bereits eine ältere Version des PostgreSQL Datenbankserver installiert sein, so muss diese zuerst entfernt werden. Die Schritte zum erstellen einer Sicherung sind im PostgreSQL Handbuch beschrieben.

Wenn das System rein mit den mitgelieferten Paketverwaltungstool arbeitet, kann der Datenbankserver einfach entfernt werden.

Code: Alles auswählen

# yum remove postgresql*

Nach einer Prüfung der Abhängigkeitsliste kann der Datenbankserver gelöscht werden. Sollten dadurch noch benötige Pakete ebenfalls gelöscht werden müssen ggf. die entsprechenden Pakete einzeln entfernt werden.


Einbinden des PostgreSQL Repos und Installation:
Im ersten Schritt müssen wir verhindern, dass in Zukunft PostgreSQL Pakete über die Server der entsprechenden Distribution kommen. Hierzu muss die Konfiguration der Repos entsprechend angepasst werden. Diese Dateien liegen im Verzeichnis /etc/yum.repos.d. Folgende Datei(en) müssen angepasst werden:
  • RHEL: /etc/yum/pluginconf.d/rhnplugin.conf, Sektion [main]
  • CentOS: CentOS-Base.repo, Sektion [base] und [updates]
  • Fedora: fedora.repo und fedora-updates.repo, Sektion [fedora]
Um nun PostgreSQL hier auszuschließen muss lediglich am Ende der oben angegebenen Sektionen folgende Zeile eingefügt werden:

Code: Alles auswählen

exclude=postgresql*


Um die Repo-Daten in das System einzubinden, gibt es ein fertiges RPM-Paket das diese Aufgabe für uns erledigt. Diese Dateien können hier heruntergeladen werden und müssen im System eingespielt werden. Je nach Distribution und gewünschter PostgreSQL-Version ist ein anderes Paket notwendig! In meinem Beispiel verwende ich CentOS mit PostgreSQL 8.3.

Code: Alles auswählen

# wget http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-1.noarch.rpm
# rpm -ihv pgdg-centos-8.3-1.noarch.rpm
# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Media.repo  pgdg-83-centos.repo

In der Datei pgdg-83-centos.repo sind die Repo-Definitionen für PostgreSQL 8.3 auf CentOS enthalten.

Anschließend kann geprüft werden, ob die neuen Pakete verfügbar sind:

Code: Alles auswählen

# yum list postgresql*
Loading "installonlyn" plugin
Setting up repositories
Reading repository metadata in from local files
Excluding Packages from CentOS-5 - Base
Finished
Excluding Packages from CentOS-5 - Updates
Finished
Available Packages
postgresql.i686                          8.3.0-2PGDG.rhel5      pgdg83
postgresql-contrib.i686                  8.3.0-2PGDG.rhel5      pgdg83
postgresql-debuginfo.i686                8.3.0-2PGDG.rhel5      pgdg83
postgresql-devel.i686                    8.3.0-2PGDG.rhel5      pgdg83
postgresql-docs.i686                     8.3.0-2PGDG.rhel5      pgdg83
postgresql-jdbc.i686                     8.3.603-1PGDG.rhel5    pgdg83
postgresql-jdbc-debuginfo.i686           8.3.603-1PGDG.rhel5    pgdg83
postgresql-libs.i686                     8.3.0-2PGDG.rhel5      pgdg83
postgresql-odbc.i686                     08.03.0100-1PGDG.rhel5 pgdg83
postgresql-odbc-debuginfo.i686           08.03.0100-1PGDG.rhel5 pgdg83
postgresql-plperl.i686                   8.3.0-2PGDG.rhel5      pgdg83
postgresql-plpython.i686                 8.3.0-2PGDG.rhel5      pgdg83
postgresql-pltcl.i686                    8.3.0-2PGDG.rhel5      pgdg83
postgresql-python.i686                   3.8.1-7PGDG.rhel5      pgdg83
postgresql-python-debuginfo.i686         3.8.1-7PGDG.rhel5      pgdg83
postgresql-server.i686                   8.3.0-2PGDG.rhel5      pgdg83
postgresql-tcl.i686                      1.6.2-1PGDG.rhel5      pgdg83
postgresql-tcl-debuginfo.i686            1.6.2-1PGDG.rhel5      pgdg83
postgresql-test.i686                     8.3.0-2PGDG.rhel5      pgdg83


Die Installation verläuft jetzt wie bei jeden anderen Paket auch:

Code: Alles auswählen

# yum install postgresql-server postgresql
...

Benötigte Abhängigkeiten werden aufgelöst und die Pakete in das System eingespielt.

Nun ist ein "nakter" PostgreSQL Server vorhanden. Ein neues Datenbankcluster kann mit initdb erstellt werden und wenn nötig kann der Backupdump anschließend eingelesen werden. Dieser Vorgang ist im PostgreSQL Handbuch beschrieben.

Achtung! Der Pfad zum data-Verzeichnis lautet bei RHEL Systemen /var/lib/pgsql/data/!


Weitere Links:
PG Yum Projekt: PostgreSQL RPM Repository (with Yum)
RPM Chart: PostgreSQL RPM Repository (with Yum)
pg-forum.de unterstützen? Meine Wunschliste

Bild

Xandrian
Erfahrener Benutzer
Beiträge: 1687
Registriert: Mi 23. Nov 2005, 09:17
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von Xandrian » Mi 9. Feb 2011, 13:32

Die Webseite hat sich geändert. Folgende URLs sind aktuell:

- Projektseite: PostgreSQL RPM Repository (with Yum)
- Liste mit Links zu den RPMs: PostgreSQL RPM Repository (with Yum)

Viel Erfolg.
pg-forum.de unterstützen? Meine Wunschliste

Bild

Antworten