Hier ist eine andere Lösung , die ich zusammen gehackt: Whatchanged .
Als einziges Argument wird der Name des Binärpakets verwendet, an dem Sie interessiert sind. So verwenden Sie eine aktuelle SRU als Beispiel:
./whatchanged python_papyon
Das macht es:
- Überprüfen Sie, ob es einen Aktualisierungskandidaten gibt. Beenden Sie, wenn es keine gibt
- Wenn ein Kandidat vorhanden ist, erstellen Sie temporäre Verzeichnisse und rufen Sie die Quellpakete sowohl für die installierte Version als auch für den Kandidaten ab
- Vergleichen Sie die beiden mit
debdiff
und geben Sie sie mit stdout aus (Sie möchten sie wahrscheinlich umleiten, um das Lesen zu erleichtern).
- Bereinigen Sie die temporären Verzeichnisse.
Es muss wahrscheinlich bestimmte Dinge besser handhaben, die beim Abrufen der Quelle schief gehen können, die Flusskontrolle ist wahrscheinlich ein bisschen aus und es muss elegantere Möglichkeiten für die Versionsprüfung geben, aber es hat in meinen bisher eingeschränkten Tests gut funktioniert. Betrachten Sie es vorerst als einen schnellen Hack, der funktioniert, und Verbesserungen sind sehr willkommen. Ich werde es in ein bzr-Repository verschieben und / oder ein Launchpad-Projekt erstellen, wenn es für einige Leute nützlich ist.
Bearbeiten : Anstatt es auf dem Pastebin verrotten zu lassen, habe ich ein Launchpad-Projekt dafür gestartet . Sie können die neueste Kofferraumversion mit erhalten bzr branch lp:whatchanged
. Fühlen Sie sich frei, Fehler zu melden , zu verzweigen, in Perl neu zu schreiben usw.
Afaik der einzige Weg, dies zu tun, besteht darin, die Quelle zu finden und den Diff selbst zu machen. Mit apt-get können Sie die tatsächliche Quelle abrufen, die zum Kompilieren der Pakete verwendet wird. fx:
Dadurch werden alle Unterschiede zwischen allen Dateien in einem Standard-Patch-Format ausgedruckt.
quelle
Hier ist eine (wahrscheinlich nicht optimale) UDD- Methode:
Pull-updates-Zweig für Ihre Veröffentlichung (unter der Annahme von Lucid), dass (Annahme folgt) die neueste SRU enthalten sollte:
Holen Sie sich die Änderungen, die durch die letzte Revision eingeführt wurden, die (Annahme folgt) der neuesten SRU entsprechen sollte:
quelle
apt-cache show package_name | grep Source:
.<package_name>
so funktioniert funktioniert bei einigen Paketen nicht:bzr branch lp:ubuntu/lucid-updates/$(apt-cache show linux-libc-dev | grep -m 1 Source: | awk "{print \$2}")
=> bzr: ERROR: Ungültige URL für den Transport: "bzr + ssh: //bazaar.launchpad.net/+branch/ubuntu/lucid-updates/linux" : keine unterstützten ProgrammeWenn Sie Dateiunterschiede in den Paketarchiven sehen möchten, extrahieren Sie deren md5sums-Dateien, sortieren und unterscheiden Sie diese. Anschließend können Sie die Liste der tatsächlichen Dateien eingrenzen, um sie dramatisch zu vergleichen.
quelle
Möglicherweise handelt es sich nicht um die "genauen" Änderungen, sondern um eine
apt-listchanges
Liste der Änderungsprotokolleinträge für die Änderungen, die seit der installierten Version vorgenommen wurden.Nach dem Herunterladen der neuen Pakete, jedoch vor Beginn der Installation, wird ein Schritt hinzugefügt, in dem der Änderungsprotokolleintrag für jedes zu aktualisierende Paket angezeigt wird. Sie können dann fortfahren oder abbrechen. Sie können es mit installieren
dann richten Sie es mit ein
quelle