Regelmäßig gibt es neue Releases bei Linux Distributionen. Das bedeutet man installatiert parallel zur altenRelease die neue Release und zieht dann die Benutzerdaten und Systemkonfigurationen vom älteren zum neueren Release um. Das dumme ist, dass man im alten Release Softwarepakete installiert hat, die standardmäßig im neuen release nicht installiert sind da man sie mit dem jeweiligen Paketmanager manuell nachinstalliert hat. Dabei gibt es i.d.R. zwei Typen: Einmal Software, die man zu lieben und schätzen gelernt hat und auch weiterhin im neuen Release benutzen will und irgendwelche Installationen um mal eben was auszuprobieren. Die Distributionen bieten Möglichkeiten an, diePakete der alten Release automatisch im neuen Release einzuspielen, nur leider wird dann auch sämtliches Test- und Spielpaket wieder installiert.
 
Genaugenommen muss man die rpm Listen des alten Releases und des neuen Releases vergleichen und eine List erstellen von den Paketetn, die im neuen Release nicht gefunden werden. Danach kann man die (hoffentlich relativ kurze) Liste durchgehen und die wichtigen Pakete identifizieren und dann manuell nachinstallieren. Um mir das zu vereinfachen habe ich ein kleines Python Script geschrieben, welches zwei rpm Listings vergleicht und die fehlenden Pakete in einer Liste ausgibt. Eingabe für das Script sind sortierte rpm Listings des alten und des neuen Releases. Ausgabe ist die Liste der Pakete, die im alten Release vorhanden sind aber im neuen Release fehlen.
 
Bedienungsanleitung:
 
1) Ausführen des folgenden Befehls auf dem alten Release
     rpm -qa  | sort > release_old
 
2) Ausführen des folgenden Befehls auf dem neuen Release
     rpm -qa  | sort  > release_new
 
3) Aufruf des Vergleichsscripts mit einer Liste von Paketen, die ignoriert werden sollen
     compareDistroRPMs release_old release_new "(lib|yast2|sax2|bundle)"
 
Das Script kann hierruntergeladen werden. Beim letzten Parameter für das Script ist zu berücksichtigen, dass es ein regulärer Ausdruck sein muss. Faustregel: Die Klammern lassen und mit | getrennt Teile des Paketnamens angeben, die ausgefiltert werden sollen, weil es Pakate sind, die in der Ausgabeliste zu ignorieren sin.
 
Beispiel: Um Pakete auszunehmen "(lib|yast2|sax2|bundle|game)"  als dritten Parameter benutzen.
 

Kommentar schreiben

Spam Kommentare sind sinnlos !
Vor der Publizierung wird jeder Beitrag auf Spam geprüft. Leider dauert es deswegen bis ein Kommentar sichtbar wird. Dafür erhält aber kein Subscriber Spam eMails.
Die eMail ist optional und nicht öffentlich sichtbar. Sie ist notwendig um eMail Benachrichtigungen zu Antworten auf Kommentare zu erhalten und wird u.U. genutzt um offline zu kommunizieren.

Spam comments are useless !
Any comment will be reviewed first and checked for spam. Unfortunately this delays the publishing of comments but will protect subscribers from spam.
eMail is optional and hidden and is required get update notifications for any comments and may be used to contact you offline