Paketverwaltung/Paketdepots

Aus openSUSE

(Unterschied zwischen Versionen)
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'''<br />Die Metadaten enthalten Informationen über die im Depot bereitgestellten Pakete und alles, was die [[Paketverwaltung#Werkzeuge zur Paketverwaltung|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.
+
# '''Metadaten'''
-
# '''Nutzdaten'''<br />Die Nutzdaten stellen die eigentlichen Pakete dar. Diese werden nur heruntergeladen wenn sie auch benötigt werden, bspw. wenn ein Paket installiert werden soll.
+
# '''Nutzdaten''' (bspw. Pakete)
-
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.
+
 
 +
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=
-
SUSE Linux und openSUSE unterstützen von Haus aus zwei Arten von Paketdepots:
+
openSUSE unterstützt von Haus die folgenden Depotarten:
-
*[[/YaST|YaST]]<br />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.
+
===[[/YaST|YaST]]===
-
*[[/RPM MetaData|RPM MetaData]]<br />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.
+
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.
-
Mit weiteren für SUSE Linux und openSUSE erhältlichen Paketverwaltern können auch noch weitere Depotformate verwendet werden:
+
 
-
*[[/APT-RPM|APT-RPM]]<br />Dieses Format ist eine Umsetzung des Debian-Depotformats für RPM-basierte Distributionen. Neben dem gleichnamigen [[APT-RPM]] kann auch [[Smart]] damit umgehen.
+
===[[/RPM MetaData|RPM MetaData]]===
-
Daneben gibt es auch noch ''plaindir'' - ein Verzeichnis welches RPM-Pakete enthält, welches nach obiger Definition aber kein richtiges Paketdepot ist.
+
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
-
=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 ;-)
 
=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:

  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