Wenn ich sudo apt-get upgrade
meine Debian Squeeze-Installation ausführe , wird folgende Fehlermeldung angezeigt:
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
libxml2-dev : Depends: libxml2 (= 2.7.8.dfsg-2+squeeze3) but 2.7.8.dfsg-2+squeeze5 is installed
E: Unmet dependencies. Try using -f.
Ich bin nicht sicher, was "Squeeze3" gegenüber "Squeeze5" bedeutet, aber es ist das einzige, was sich im libxml2-Paket unterscheidet.
Wenn ich "sudo apt-get install -f" versuche, erhalte ich:
The following extra packages will be installed:
libxml2-dev
The following packages will be upgraded:
libxml2-dev
1 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
108 not fully installed or removed.
Need to get 0 B/830 kB of archives.
After this operation, 69.6 kB disk space will be freed.
Do you want to continue [Y/n]? Y
(Reading database ... 96842 files and directories currently installed.)
Preparing to replace libxml2-dev 2.7.8.dfsg-2+squeeze3 (using .../libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb) ...
Unpacking replacement libxml2-dev ...
dpkg: error processing /var/cache/apt/archives/libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb (--unpack):
unable to install new version of `./usr/include/libxml2': No such file or directory
configured to not write apport reports
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Ein ähnlicher Fehler tritt bei auf sudo apt-get upgrade -f
.
Meine /etc/apt/sources.list ist derzeit:
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
Wie behebe ich das? Vielen Dank!
squeeze3
ist die dritte Patch-Version für Squeeze,squeeze5
ist die fünfte. Sie sind Teil der Versionsnummer. Die Versionen für die Bibliothek und die Entwicklungsdateien müssen genau übereinstimmen. Es ist normal, dass APT möchte, dass Sie laufenapt-get install -f
. Was nicht normal ist, ist, dass das Upgrade vonlibxml2-dev
fehlschlägt. Existiert das Verzeichnis/usr/include/libxml2
? Sind die Berechtigungen angemessen? Ist genügend Speicherplatz vorhanden?ls -l
sagt, dass es nicht zugreifen kannlibxml2
(auch nicht als root) und es gibt?
Markierungen anstelle aller Berechtigungsinformationen. Zur Beantwortung befördern? Ich bin mir nicht sicher, wie ich das beheben soll, aber ich kann meinen Gastgeber untersuchen / mit ihm sprechen.Antworten:
squeeze3
ist die dritte Patch-Version für Squeeze,squeeze5
ist die fünfte. Sie sind Teil der Versionsnummer. Die Versionen für die Bibliothek und die Entwicklungsdateien müssen genau übereinstimmen. Daher möchte APT, dass Sie ausgeführt werden,apt-get install -f
wenn Ihr System über inkonsistente Versionen verfügt.Was nicht normal ist, ist, dass das Upgrade von
libxml2-dev
fehlschlägt. Die Meldung, nicht lesen zu können,/usr/include/libxml2
ist ungewöhnlich. Es scheint darauf hinzudeuten, dass die Installation auf irgendeine Weise beschädigt wurde. Überprüfen Sie, ob das Verzeichnis noch vorhanden ist. Wenn Sie es irgendwann verschoben oder entfernt haben, tun Sie dies nicht und erstellen Sie das Verzeichnis neu oder verschieben Sie es zurück, um es wiederherzustellen. Wenn das Verzeichnis existiert, Sie aber so etwas sehendann ist Ihr Dateisystem oder möglicherweise Ihr RAM beschädigt. Zuerst überprüfen Sie Ihre RAM : Dies ist die häufigste Ursache für Dateisystem Korruption. Schreiben Sie so wenig wie möglich, bis Sie sich über den Arbeitsspeicher sicher sind, da dies den Schaden verschlimmern kann. Wie man es von dort nimmt, hängt von der Art und dem Ausmaß des Schadens ab.
quelle
Versuchen Sie, es zu löschen und dann neu zu installieren.
Ein
-dev
Paket besteht nur aus den Komponenten, die zum Kompilieren von Programmen erforderlich sind, die mit dieser Bibliothek verknüpft sind. Es wird nicht zur Laufzeit benötigt, sodass eine vollständige Bereinigung sicher ist.quelle
apt-get clean
wodurch der Paket-Cache geleert und das erneute Herunterladen des benötigten Pakets aus dem Repo erzwungen wird./usr/include/libxml2
war beschädigt. Sogarrm -f /usr/include/libxml2
würde scheitern und so etwas sagen, dass es die Datei nicht finden konnte. Mein Webhost hat 17 Stunden gebraucht, um das Problem zu beheben.