Paketverwaltung/Paketdepots

Aus openSUSE

< Paketverwaltung(Unterschied zwischen Versionen)
(aktualisiert)
K (Kategorie hinzugefügt)
 
Zeile 91: Zeile 91:
[[Kategorie:Paketverwaltung]]
[[Kategorie:Paketverwaltung]]
 +
[[Kategorie:Software-Verwaltung]]
[[en:Software_Repositories]]
[[en:Software_Repositories]]

Aktuelle Version vom 11:12, 1. Nov. 2009

Inhaltsverzeichnis

Was ist ein Paketdepot?

Ein Paketdepot stellt einem System Softwarepakete bereit; dies geschieht in zwei Teilen:

  1. Metadaten
  2. Nutzdaten (bspw. Pakete)

Die meisten Softwaredepots enthaltn nur Pakete. SUSE-Depots enthalten außerdem Patches, Schemata und Produkte.

Metadaten

"Metadaten" sind sozusagen das Inhaltsverzeichnis eines Paketdepots; sie enthalten verschiedene Informationen über die Software (normalerweise RPM-Pakete) die im Depot bereitsteht.

  • Paketname, -version, Veröffentlichungsversion, Zielarchitektur und Distribution
  • Zusammenfassung, Beschreibung, Lizenz, Web-Seite des Projekts
  • Welche Dinge das Paket benötigt (andere Pakete, bestimmte Werkzeuge oder Bibliotheken)
  • Was es bereitstellt (unter anderem eine Liste der im Paket enthaltenen Dateien)
  • Das Änderungsprotokoll der Software

Diese Metadaten werden von den Paketverwaltern wie Zypper, Smart, YUM usw. benötigt, um zu berechnen, wie sie Aktionen wie Installieren, Aktualisieren und Entfernen durchführen. (Die wichtigsten sind dabei, was die Pakete bereitstellen und was sie benötigen.)

Die Metadaten reichen nicht zur Installation der Software aus - die Pakete sind Teil der Nutzlast (siehe unten).

Metadaten werden beim ersten Zugriff auf ein Paketdepot komplett heruntergeladen oder aufgefrischt, wenn sich Teile geändert haben (weil bspw. Pakete aktualisiert oder hinzugefügt wurden).

Der Hautpunterschied zwischen den verschiedenen Depottypen (siehe unten) ist die Darstellung der Metadaten. Der Inhalt der Metadaten ist meist identisch.

Für Metadaten existieren verschiedene Formate:

  • REPOMD (Repository MetaData), auch "rpm-md" (RPM Metadata) genannt oder "yum" (weil es das ursprüngliche Format des Paketverwalters YUM ist)
  • YaST2
  • APT-RPM (für RPM) und APT-DEB (für DEB)
  • Red Carpet (auch Open Carpet genannt)
  • RPM-HDL (RPM Header List)
  • URPMI (für Mandrivas Paketverwalter)
  • slack, für Slackwares "Paketverwalter"

und vielleicht auch noch ein paar andere.

Es scheint also unglücklicherweise für jeden Paketverwalter ein anderes Metadatenformat zu geben.

Mittlerweile scheinen aber die meisten Paketverwalter dazu überzugehen REPOMD zu unterstützen, wodurch sich dieses zu einem allgemein akzeptierten Standard entwickelt:

  • YaST2 unterstützt es seit SUSE Linux 10.0
  • Libzypp unterstützt es seit SUSE Linux 10.1
  • yum unterstützt es natürlich, weil es im Grunde das eigene Format ist
  • apt4rpm unterstützt es seit ein paar Versionen (allerdings noch nicht die Version in SUSE Linux 10.1)
  • Smart unterstützt sowieso fast alles ;-)

Nutzlastdaten

Auf die Nutzlastdaten - normalerweise die Pakete - wird nur bei Bedarf zugegriffen, bspw. wenn ein Paket installiert werden soll.

Beide Teile - Metadaten und Nutzlastdaten - befinden sich normalerweise auf dem gleichen Server. Dies ist aber nicht zwingend erforderlich, Pakete könnten aus Gründen der Sicherheit oder Lastverteilung auch auf verschiedenen Servern liegen.


Andere Namen für Paketdepot

Aus der englischen Sprache stammt der auch häufig im deutschen Sprachraum verwendetet Begriff repository. Die meisten Paketverwaltungswerkzeuge verwenden aber eigene Begriff für ein Paketdepot, wobei damit in der Regel die folgenden Informationen gemeint sind:

  • Die Basis-URL von welcher die Metadaten und die Pakete bezogen werden.
  • Ein passender Name.

Darüber hinaus werden noch andere Informationen angegeben, je nach verwendetem Paketverwalter.

  • YaST2 nennt sie "Installationsquellen/installation sources" oder "Softwarekataloge/software catalogs".
  • ZMD/rug nennt sie "Kataloge/catalogs".
  • Smart nennt sie "Kanäle/channels".
  • apt-rpm nennt sie "Quellen/sources".
  • yum nennt sie "repos" (repositories).
  • zypper nennt sie "Service" und in neueren Versionen "Repository".

Bei all den Bezeichnungen handelt es sich aber letztendlich immer nur um eins: Ein (RPM)-Paketdepot. ;-)


Paketdepotarten

openSUSE unterstützt von Haus die folgenden Depotarten:

YaST

Diese Format wird normalerweise für Installationsmedien wie CDs und DVDs benutzt, wobei es auch zum Einsatz kommt wenn deren Inhalt über einen Server bereitgestellt wird. Dieses Format wird nur von SUSE Linux und openSUSE verwendet, kann aber auch mit Smart benutzt werden.

RPM MetaData

Dieses Format ist standardisiert und recht weit verbreitet, man findet auch den namen rpomd; es wird vor allem für Depots im Internet und in lokalen Netzwerken benutzt. SUSE Linux und openSUSE unterstützen eine erweiterte Version welche auch Patches, Muster und Produkte enthält. (rpm-metadata wird manchmal auch einfach nur yum genannt, wobei diese Bezeichnung abgelehnt wird.) Neben auf der Libzypp basierenden Programmen wie YaST, ZMD/rug und Zypper können auch Smart, YUM und APT-RPM (neue Versionen) damit umgehen, wobei diese die erweiterten Funktionen (noch) nicht unterstützen.

Einfache Verzeichniss

plaindir - ein Verzeichnis das RPM-Pakete enthält - wird zwar auch unterstützt, zählt nach obiger Definition aber nicht als Paketdepot.


Auf Paketdepots zugreifen

Der Zugriff auf ein Depot geschieht über eine URL, bestehend aus dem verwendeten Protokoll (bspw. http), dem Server (bspw. ftp.opensuse.org) und dem Verzeichnis auf dem Server (bspw. pub/opensuse/10.1). Die URL gibt allerdings nicht den Typ des Depots an, wie das folgende Beispiel zeigt.

(1) http://download.opensuse.org/distribution/SL-10.1/inst-source/
(2) http://download.opensuse.org/distribution/SL-10.1/inst-source/suse/
(3) http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-i386
  • (1) ist ein YaST2-Depot
  • (2) ist ein REPOMD-Depot
  • (3) ist ein APT-RPM-Depot


Siehe auch