Dpkg-Reparatur erzwingen

Dpkg-Reparatur erzwingen

Ich habe einen schrecklichen Fehler gemacht und zwei Ordner aus dem /usr/libVerzeichnis auf meinem Debian gelöscht. Ich habe gelöscht python2.7/undpkgconfig/

Dinge, die ich erfolglos versucht habe, das Problem zu beheben:

  • sudo dpkg -i python2* ->„Plattformunabhängige Bibliotheken konnten nicht gefunden werden“-->„/usr/lib/pyton2.7/py_compile.py keine solche Datei“

  • sogar löschen (Python; für zukünftige Neuinstallation) über sudo dpkg -i python2.7-minimal--> kann nicht entfernt werden, weilpython2.7-minimal hängt von python2.7-minimal (>=... .deb) ab und python2.7 hängt von python2.7-minimal (>=..._rc2.deb) ab.

Ich kann es also nicht neu installieren oder die Pakete reparieren, solange sie nicht wie angegeben von dpkg „konfiguriert“ sind. Ich apt-get install pythonkann sie aber auch nicht für eine saubere Neuinstallation entfernen, da sie Abhängigkeiten von unterschiedlichen Versionen in dpkg haben und ich nicht weiß, wie ich das lösen kann.

Wie kann ich also ein Paket mit allen Abhängigkeiten über dpkg oder apt vollständig entfernen, um die oben beschriebene Situation zu lösen?

Antwort1

Wenn aptes nicht funktioniert, ist es manchmal möglich, die Dinge manuell mit dpkgdem vollständigen Pfad des lokal zwischengespeicherten Pakets in Ordnung zu bringen. So geht's:

  1. cdwo aptdie Pakete gelagert werden, nämlich/var/cache/apt/archives/
  2. dpkgDann (wie benötigt) den Schalter für Installieren, Entfernen, Bereinigen oder was auch immer, dann dieDateinamedes Pakets im aktuellen Verzeichnis. Um also eine von mehreren Versionen von'foobar'die kürzlich nacheinander installiert wurden, geben Sie ein dpkg -i foobar<TAB>und die Taste '' füllt den Rest mit bashder Autovervollständigung aus oder zeigt die verfügbaren Versionen an.
  3. Wenn dpkgSie sagen, Sie brauchen'fizban', (oder muss loswerden von'fizban'), führen Sie Schritt 2 aus, mit'fizban'. Versuchen Sie dann Schritt 2 mit'foobar'wieder.
  4. Wiederholen Sie Nr. 2 und 3, bis das System den gewünschten Zustand erreicht hat.

Dies setzt voraus, dass die benötigten Paketarchive noch lokal zwischengespeichert sind. Manchmal müssen die Pakete online gesucht werden. In diesem Fall könnte die Versionsnummer des benötigten Pakets etwasunsicher-- In solchen Fällen /var/log/dpkg.loggibt es als Antwort einfach grepoder seddurch den Paketnamen eine Antwort, und es werden die Versionen angezeigt, dpkgmit denen bisher gearbeitet wurde.

verwandte Informationen