Ich habe einen schrecklichen Fehler gemacht und zwei Ordner aus dem /usr/lib
Verzeichnis 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 python
kann 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 apt
es nicht funktioniert, ist es manchmal möglich, die Dinge manuell mit dpkg
dem vollständigen Pfad des lokal zwischengespeicherten Pakets in Ordnung zu bringen. So geht's:
cd
woapt
die Pakete gelagert werden, nämlich/var/cache/apt/archives/dpkg
Dann (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 eindpkg -i foobar<TAB>
und die Taste '' füllt den Rest mitbash
der Autovervollständigung aus oder zeigt die verfügbaren Versionen an.- Wenn
dpkg
Sie 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. - 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.log
gibt es als Antwort einfach grep
oder sed
durch den Paketnamen eine Antwort, und es werden die Versionen angezeigt, dpkg
mit denen bisher gearbeitet wurde.