Paketverwaltung/Paketdepots
Aus openSUSE
K |
(aktualisiert) |
||
| Zeile 1: | Zeile 1: | ||
| + | =Was ist ein Paketdepot?= | ||
Ein Paketdepot stellt einem System Softwarepakete bereit; dies geschieht in zwei Teilen: | Ein Paketdepot stellt einem System Softwarepakete bereit; dies geschieht in zwei Teilen: | ||
| - | # '''Metadaten''' | + | # '''Metadaten''' |
| - | + | # '''Nutzdaten''' (bspw. Pakete) | |
| - | + | ||
| + | Die meisten Softwaredepots enthaltn nur [[Paketverwaltung|Pakete]]. SUSE-Depots enthalten außerdem [[Patch-Verwaltung|Patches]], [[Schemata]] und [[Produktverwaltung|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= | =Andere Namen für Paketdepot= | ||
| Zeile 9: | Zeile 52: | ||
*Ein passender Name. | *Ein passender Name. | ||
Darüber hinaus werden noch andere Informationen angegeben, je nach verwendetem Paketverwalter. | Darüber hinaus werden noch andere Informationen angegeben, je nach verwendetem Paketverwalter. | ||
| + | |||
*YaST2 nennt sie "Installationsquellen/installation sources" oder "Softwarekataloge/software catalogs". | *YaST2 nennt sie "Installationsquellen/installation sources" oder "Softwarekataloge/software catalogs". | ||
*ZMD/rug nennt sie "Kataloge/catalogs". | *ZMD/rug nennt sie "Kataloge/catalogs". | ||
| Zeile 15: | Zeile 59: | ||
*yum nennt sie "repos" (repositories). | *yum nennt sie "repos" (repositories). | ||
*zypper nennt sie "Service" und in neueren Versionen "Repository". | *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. | + | Bei all den Bezeichnungen handelt es sich aber letztendlich immer nur um eins: Ein (RPM)-Paketdepot. ;-) |
| + | |||
=Paketdepotarten= | =Paketdepotarten= | ||
| - | + | openSUSE unterstützt von Haus die folgenden Depotarten: | |
| - | + | ===[[/YaST|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|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]], [[Yellowdog Updater, Modified|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= | =Auf Paketdepots zugreifen= | ||
| Zeile 35: | Zeile 84: | ||
* (3) ist ein APT-RPM-Depot | * (3) ist ein APT-RPM-Depot | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
=Siehe auch= | =Siehe auch= | ||
Version vom 15:03, 31. Okt. 2009
Inhaltsverzeichnis |
Was ist ein Paketdepot?
Ein Paketdepot stellt einem System Softwarepakete bereit; dies geschieht in zwei Teilen:
- Metadaten
- 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

