Scroll to navigation

doc::pod::de::Debian::Packages::Compare(3) User Contributed Perl Documentation doc::pod::de::Debian::Packages::Compare(3)

NAME

Debian::Packages::Compare - Unterstuetzung fuer Emdebian-Depotvergleich

VERSION

Version 3.0.0

UeBERSICHT

Liest die Packages-Datei, erzeugt einen Hash-Wert von XPackageX und Version, einen je Architektur, einen je Suite, ein Paar pro Depot. Das zugrundeliegende Xlibparse-debian-packages-perlX ist ein sehr einfaches Modul, das wohl an keinem Punkt zusaetzliche Daten in die verglichenen Hash-Werte einfuegt, das die noetigen Daten nimmt und die kompletten Packages-Daten separat unter Benutzung von Xget_single_packageX laedt.
Dieses Modul ist derzeit an das Layout des Depots gebunden, das von Reprepro benutzt wird, um die Architekturliste und verschiedene andere Teile der Metadaten zu identifizieren. Mit der Zeit koennen Funktionen hinzugefuegt werden, um solche Listen bereitzustellen.
Um alle Depots unterhalb eines einzelnen Basisverzeichnisses zu finden, erwartet das Modul:
 $base/$repo_name/conf/distributions
Falls $base undefiniert ist oder die Depotverzeichnisse nicht gefunden werden, geben alle nachfolgenden Funktionen XundefX zurueck.
etc.
Beispielcode:
 use Debian::Packages::Compare;
 my $base = '/path/to/repositories/'
 &set_base($base);
 my $debu  = &read_packages ('unstable', 'filter');
 my $gripu = &read_packages ('unstable', 'grip');
 my %debianunstable = %$debu  if (defined $debu);
 my %gripunstable   = %$gripu if (defined $gripu);
 foreach my $pkg (sort keys %debianunstable)
 {
   if ($debianunstable{$pkg}{'source'} ne $gripunstable{$pkg}{'source'})
   {
     # $pkg ist entweder nicht in einem Grip-Depot oder hat eine andere Version
   }
 }
Die Hauptfunktionen oder nachfolgenden Versionen werden detailliertere Fehlerbehandlung beinhalten.
 perl -MDebian::Packages::Compare -MData::Dumper -e '&set_base("/opt/reprepro"); \
  $c = &read_packages("testing","grip"); print Dumper ($$c{"dpkg"});';

get_archlist

Benoetigt derzeit das Reprepro-Dateilayout.
Liest die unterstuetzten Architekturen und gibt eine Liste zurueck.

get_locale_roots

Benoetigt derzeit das Reprepro-Dateilayout.
Liest die unterstuetzten Locale-Wurzeln und gibt eine Liste zurueck.

get_components

Aehnelt Xget_locale_rootsX allerdings fuer normale Depots, so dass geteilte Komponenten (wie XdevX und XdocX in Emdebian-Grip) explizit unterstuetzt werden koennen. Beachten Sie, dass Depots mit XcontribX oder Xnon-freeX voraussichtlich mit dieser Art von Unterstuetzung verwirrende Ergebnisse erhalten werden.

get_suite_names

Wertet die Datei Xconf/distributionsX fuer das angegebene Depot aus und wiederholt die Liste der konfigurierten Suite-Namen X eine einheitliche zusammengestellte Liste der XSuite:X- und XCodename:X-Variablen in Xconf/distributionsX.

get_unfrozen_suite_names

Wertet die Datei Xconf/distributionsX fuer das angegebene Depot aus und wiederholt die Liste der konfigurierten Suite-Namen, auf die NICHT nur lesend zugegriffen werden kann. XCodename:X-Variablen sind NICHT enthalten.

set_base

Setzt das Basisverzeichnis des/der Depot(s) zum Vergleich. Das Modul erwartet, dass alle Depots unterhalt eines einzelnen Basisverzeichnisses gefunden werden:
 $base/$repo_name/dists/$suite/main/binary-$arch/Packages
 $base/$repo_name/dists/$suite/main/source/Sources.gz

read_sources

Aehnlich wie Xread_binariesX, erwartet jedoch eine mit GZip komprimierte Datei. Wird ueblicherweise nicht direkt aufgerufen.

read_binaries

Liest die Packages-Datei und erstellt einen Hash-Wert der Pakete, Architekturen und Versionen in dem jeweiligen Depot (unter dem Verzeichnis $base und der Suite fuer die definierte @archlist, einschliesslich Einzelheiten von XsourcesX.
Erfordert zwei Parameter X den Suite- und den Depotnamen.
Gibt XundefX zurueck, falls das Paket nicht gefunden wird.
z.B. fuer das Grip-Depot:
 $hash{'sed'}{'source'} => '4.1.5-8'
 $hash{'sed'}{'armel'} => '4.1.5-8em1'
 ...

read_locale

Spezialisierte Funktion, die die Organisation der Locale-Wurzel des TDeb-Depots regelt. Die interne Locale-Wurzelkomponentenstruktur ist im zurueckgegebenen Hash-Wert versteckt, der Komponentenname ist im Paketnamen getrennt aufgelistet. Quelldaten werden unter dem originalen Quellpaketnamen aufbewahrt und im Hash-Wert referenziert:
Die Locale-Wurzel ist in $list{$package}{'locale'} und der Quellpaketname in $list{$package}{'source'} enthalten.
z.B.
 $hash{'sed-locale-pt-br}{'source'} => 'sed'
 $hash{'sed-locale-pt-br}{'locale'} => 'pt'
 $hash{'sed-locale-pt-br}{'armel'} => '4.1.5-8'
 ...
 $hash{'sed'}{'source'} => '4.1.5-8'

get_single_package

Vollstaendigen Packages-Datensatz fuer ein einzelnes Paket abrufen, binaer (einzelne Architektur) oder Quelle (.dsc).

get_missing_sources

Zwei Depots der gleichen Suite vergleichen und eine Liste der Quellpakete zurueckgeben, die im ersten Depot enthalten sind, aber nicht im zweiten. (Aeltere Versionen werden ignoriert.)
ZU ERLEDIGEN: Es wird auch ein Xget_outdated_sourcesX und ein Xget_outdated_binariesX benoetigt.

get_missing_binaries

Zwei Depots der gleichen Suite vergleichen und eine Liste der Binaerpakete zurueckgeben, die in beiden Depots als Quellpakete existieren, aber nur im ersten als Binaerpaket, nicht im zweiten.
Emdebian-Versionssuffixe werden im Vergleich automatisch bereinigt.

get_britney_list

Zwei Depots vergleichen, jedes mit Unstable und Testing, gibt eine Liste der Quellpakete zurueck, die fuer eine Migration geeignet sind.
Um fuer eine Migration geeignet zu sein, muss ein Paket im ersten Depot in der gleichen Version, sowohl in Unstable, als auch in Testing existieren. Es muss ausserdem im zweiten Depot fuer Unstable existieren und in der gleichen Version wie im ersten Depot vorliegen. Zuguterletzt muss das Quellpaket entweder in Testing im zweiten Depot fehlen oder eine niedrigere Version als in Unstable aufweisen.
Dies ist eine reine Debian-Funktion und es ist keine Unterstuetzung fuer Depots verfuegbar, die keine Unstable- und Testing-Suites in exakt der gleichen Art wie Debian implementieren.
Alle Daten werden jedesmal neu geladen, wenn diese Funktion ausgefuehrt wird.
 1. Depot1 Unstable muss zu Depot1 Testing passen
 2. Depot1 Unstable muss zu Depot2 Unstable passen
 3. Depot2 Unstable muss B<neuer> als Depot2 Testing sein
 4. Alle Architekturen werden verglichen, einschliesslich der Quellen.
Gibt im Fehlerfall XundefX zurueck.
Der zurueckgegebene Hash-Wert wird unter dem Quellpaketnamen indiziert.
Um die Liste der Pakete zu erhalten, die eine Meldung ueber fehlende Quellen erscheinen liess, rufen Sie Xget_britney_complaintX auf X die zurueckgegebene Liste wird undefiniert sein, ausser wenn Xget_britney_listX bereits aufgerufen wurde.

get_britney_complaint

Falls Xget_britney_listX mit Quellpaketen aufwartet, die fuer eine Testing-Migration fehlen, gibt Xget_britney_complaintX die Liste der Quellpaketnamen zurueck, die identifiziert wurden.
Falls Xget_britney_listX nicht aufgerufen wurde, wird XundefX zurueckgegeben.
Falls es dort keine Beanstandungen gibt, wird ausserdem XundefX zurueckgegeben.

Copyright und Lizenz

 Copyright (C) 2008  Neil Williams <codehelp@debian.org>
 Dieses Paket ist freie Software; Sie koennen es unter den Bedingungen der
 XGNU General Public LicenseX, wie sie von der XFree Software FoundationX
 entweder in Version 3 der Lizenz oder (optional) in einer spaeteren Version
 veroeffentlicht wurde, weiterverteilen und/oder veraendern.
 Dieses Programm wird inder Hoffnung verteilt, dass es nuetzlich sein wird,
 aber OHNE JEGLICHE GEWAeHRLEISTUNG, auch ohne die inbegriffene
 Gewaehrleistung von MARKTGAeNGIGKEIT und EIGNUNG FUeR EINEN SPEZIELLEN ZWECK.
 Lesen Sie die XGNU General Public LicenseX, um weitere Einzelheiten zu
 erhalten.
 Sie sollten mit diesem Programm eine Kopie der XGNU General Public License
 erhalten haben. Falls nicht, lesen Sie <http://www.gnu.org/licenses/>.

AUTOR

Neil Williams, "<codehelp@debian.org>"

FEHLER

Bitte melden Sie jegliche Fehler oder Anfragen zu Funktionalitaeten auf Englisch per "reportbug libdebian-packages-compare-perl" an das XDebian Bug Tracking SystemX.
2011-06-19 perl v5.12.3