Paketverwaltung/Paketdepots
aus openSUSE, der freien Wissensdatenbank
Ein Paketdepot stellt einem System Softwarepakete bereit; dies geschieht in zwei Teilen:
- Metadaten
Die Metadaten enthalten Informationen über die im Depot bereitgestellten Pakete und alles, was die Paketverwaltungswerkzeuge benötigen, um damit zu arbeiten. Beim ersten Zugriff auf ein Depot werden die Metadaten komplett heruntergeladen, dass selbe passiert, wenn etwas verändert wurde; bspw. weil Pakete aktualisiert oder entfernt wurden oder neue Pakete hinzugefügt wurden. - Nutzdaten
Die Nutzdaten stellen die eigentlichen Pakete dar. Diese werden nur heruntergeladen wenn sie auch benötigt werden, bspw. wenn ein Paket installiert werden soll.
Normalerweise befinden sich beide Teile, also Meta- und Nutzdaten, auf dem selben Server. Das ist allerdings keine Notwendigkeit, so können sich die Nutzdaten bspw. aus Sicherheitsgründen oder zur Lastverteilung auf anderen Servern befinden.
Inhaltsverzeichnis |
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
SUSE Linux und openSUSE unterstützen von Haus aus zwei Arten von Paketdepots:
- 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.
Mit weiteren für SUSE Linux und openSUSE erhältlichen Paketverwaltern können auch noch weitere Depotformate verwendet werden:
- APT-RPM
Dieses Format ist eine Umsetzung des Debian-Depotformats für RPM-basierte Distributionen. Neben dem gleichnamigen APT-RPM kann auch Smart damit umgehen.
Daneben gibt es auch noch plaindir - ein Verzeichnis welches RPM-Pakete enthält, welches nach obiger Definition aber kein richtiges Paketdepot ist.
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
Metadaten im allgemeinen
"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 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.) 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"
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 sie 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 ;-)

