Wenn ohnehin alles prima laufen würde
Paketliste
Reinstall
Code: Alles auswählen
aptitude reinstall $(aptitude search "?installed" -F "%p")
Hier gibt es aber Probleme. Sichten:
Problematisch bei sowas sind zurückgelassene Konfig-Dateien, daher
Code: Alles auswählen
# apt-config dump | egrep -i "purge|remove"
APT::Get::Purge "true";
APT::Get::AutomaticRemove "true";
Aptitude::Purge-Unused "true";
Code: Alles auswählen
aptitude -s install
apt-get -s autoremove
deborphan
aptitude search "?installed(?obsolete)"
in virtuoser Kombination, um "Ostereier" zu finden.
sichten, gegebenenfalls umbenennen, damit aus dem Namensschema-Mechanismus der Paketskripte herausgenommen.
Die schon als rc vorliegenden Paket-Reste bedürfen händischer Löschung:
Änderungen an Konfigdateien versuche ich zu vermeiden (<-> evtl. ucf-Probleme),
und den hoffentlich vorhandenen include-Mechanismus separater Dateien zu benutzen.
Der ucf-Mechanismus stellt bei downgrade ein Problem da, da er nur in upgrade-Richtung funktioniert.
Bei downgrade dürfte er einen Fehler ausgeben und das entsprechende Paket unkonfiguriert lassen.
Beste Vorgehensweise wäre IMO, die entsprechende Konfig-Datei erstmal aus dem Wege schaffen und Änderung im nachhinein wieder einarbeiten.
Sehr problematisch sollten db sein, die im Zuge eines Upgrade Formatänderungen erfahren.
Bsp. mysql: debian packt in das upgrade-Skript noch einen dump/restore,
aber wenn sich die Änderung auch im dump niederschlägt?
Zusätzlich ist in der mysql-db auch eine Versionsangabe, an der das Paketskript scheitern könnte/dürfte.
Speziell mysql gäbe es ein Problem mit einer denkbaren Umstellung mysql->mariadb.
Bei der Problemstellung würde ich aptitude gegenüber apt-get bevorzugen,
da es Probleme meist erstmal übergeht, dagegen apt-get meist abbricht.
Von Vorteil ist gegebenenfalls, auf das System dazu per chroot zuzugreifen (dazu Mounts zusammenstellen usw.),
da Dienste dann einfach nicht laufen (Bsp. systemd/init/udev)
und nur die Paketbeziehungen das Problem darstellen.
Erwägenswert, gegebenenfalls ein Paket der backports gegenüber dem Stammrepo zu bevorzugen.
Bsp. wäre testing/wheezy dovecot2 -> squeeze dovecot1 oder squeeze-backports dovecot2,
stark verändertes Konfig-Schema, erschwerend gab/gibt(?) es einen Bug beim Entfernen von dovecot-sieve.
Insgesamt akademisch, neu aufsetzen, Konfig/Daten übertragen wäre wohl besser.