VERSION
Version 3.0.0U.BERSICHT
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 zusa.tzliche Daten in die verglichenen Hash-Werte einfu.gt, das die no.tigen Daten nimmt und die kompletten Packages-Daten separat unter Benutzung von Xget_single_packageX la.dt.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 ko.nnen Funktionen hinzugefu.gt 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 zuru.ck.
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
Beno.tigt derzeit das Reprepro-Dateilayout.Liest die unterstu.tzten Architekturen und gibt eine Liste zuru.ck.
get_locale_roots
Beno.tigt derzeit das Reprepro-Dateilayout.Liest die unterstu.tzten Locale-Wurzeln und gibt eine Liste zuru.ck.
get_components
A.hnelt Xget_locale_rootsX allerdings fu.r normale Depots, so dass geteilte Komponenten (wie XdevX und XdocX in Emdebian-Grip) explizit unterstu.tzt werden ko.nnen. Beachten Sie, dass Depots mit XcontribX oder Xnon-freeX voraussichtlich mit dieser Art von Unterstu.tzung verwirrende Ergebnisse erhalten werden.get_suite_names
Wertet die Datei Xconf/distributionsX fu.r 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 fu.r 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
A.hnlich wie Xread_binariesX, erwartet jedoch eine mit GZip komprimierte Datei. Wird u.blicherweise 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 fu.r die definierte @archlist, einschlieβlich Einzelheiten von XsourcesX.Erfordert zwei Parameter X den Suite- und den Depotnamen.
Gibt XundefX zuru.ck, falls das Paket nicht gefunden wird.
z.B. fu.r 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 zuru.ckgegebenen 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
Vollsta.ndigen Packages-Datensatz fu.r ein einzelnes Paket abrufen, bina.r (einzelne Architektur) oder Quelle (.dsc).get_missing_sources
Zwei Depots der gleichen Suite vergleichen und eine Liste der Quellpakete zuru.ckgeben, die im ersten Depot enthalten sind, aber nicht im zweiten. (A.ltere Versionen werden ignoriert.)ZU ERLEDIGEN: Es wird auch ein Xget_outdated_sourcesX und ein Xget_outdated_binariesX beno.tigt.
get_missing_binaries
Zwei Depots der gleichen Suite vergleichen und eine Liste der Bina.rpakete zuru.ckgeben, die in beiden Depots als Quellpakete existieren, aber nur im ersten als Bina.rpaket, 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 zuru.ck, die fu.r eine Migration geeignet sind.Um fu.r 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 auβerdem im zweiten Depot fu.r 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 Unterstu.tzung fu.r Depots verfu.gbar, die keine Unstable- und Testing-Suites in exakt der gleichen Art wie Debian implementieren.
Alle Daten werden jedesmal neu geladen, wenn diese Funktion ausgefu.hrt 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, einschlieβlich der Quellen.
Gibt im Fehlerfall XundefX zuru.ck.
Der zuru.ckgegebene Hash-Wert wird unter dem Quellpaketnamen indiziert.
Um die Liste der Pakete zu erhalten, die eine Meldung u.ber fehlende Quellen erscheinen lieβ, rufen Sie Xget_britney_complaintX auf X die zuru.ckgegebene Liste wird undefiniert sein, auβer wenn Xget_britney_listX bereits aufgerufen wurde.
get_britney_complaint
Falls Xget_britney_listX mit Quellpaketen aufwartet, die fu.r eine Testing-Migration fehlen, gibt Xget_britney_complaintX die Liste der Quellpaketnamen zuru.ck, die identifiziert wurden.Falls Xget_britney_listX nicht aufgerufen wurde, wird XundefX zuru.ckgegeben.
Falls es dort keine Beanstandungen gibt, wird auβerdem XundefX zuru.ckgegeben.
Copyright und Lizenz
Copyright (C) 2008 Neil Williams <[email protected]> Dieses Paket ist freie Software; Sie ko.nnen 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 spa.teren Version vero.ffentlicht wurde, weiterverteilen und/oder vera.ndern. Dieses Programm wird inder Hoffnung verteilt, dass es nu.tzlich sein wird, aber OHNE JEGLICHE GEWA.HRLEISTUNG, auch ohne die inbegriffene Gewa.hrleistung von MARKTGA.NGIGKEIT und EIGNUNG FU.R 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, "<[email protected]>"FEHLER
Bitte melden Sie jegliche Fehler oder Anfragen zu Funktionalita.ten auf Englisch per "reportbug libdebian-packages-compare-perl" an das XDebian Bug Tracking SystemX.