Lorsque j'exécute sudo apt-get upgrade
mon installation Debian Squeeze, j'obtiens l'erreur suivante:
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.
Je ne sais pas ce que "squeeze3" contre "squeeze5" signifie, mais c'est la seule chose qui diffère dans le paquet libxml2.
Lorsque j'essaie "sudo apt-get install -f", j'obtiens:
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)
Une erreur similaire se produit avec sudo apt-get upgrade -f
.
Ma /etc/apt/sources.list est actuellement:
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
Comment puis-je résoudre ce problème? Merci!
squeeze3
est la troisième version de patch pour Squeeze,squeeze5
est la cinquième. Ils font partie du numéro de version. Les versions de la bibliothèque et des fichiers de développement doivent correspondre exactement. Il est normal qu'APT veuille que vous couriezapt-get install -f
. Ce qui n'est pas normal, c'est que la mise à niveau delibxml2-dev
échoue. Le répertoire/usr/include/libxml2
existe-t-il? Les autorisations sont-elles raisonnables? L'espace disque est-il suffisant?ls -l
dit qu'il ne peut pas accéderlibxml2
(même en tant que root) et qu'il donne des?
marques à la place de toutes les informations d'autorisation. Promouvoir pour répondre? Je ne sais pas comment résoudre ce problème, mais je peux regarder / parler à mon hôte.Réponses:
squeeze3
est la troisième version de patch pour Squeeze,squeeze5
est la cinquième. Ils font partie du numéro de version. Les versions de la bibliothèque et des fichiers de développement doivent correspondre exactement, il est donc normal qu'APT veuille que vous exécutiezapt-get install -f
lorsque votre système a des versions incohérentes.Ce qui n'est pas normal, c'est que la mise à niveau de
libxml2-dev
échoue. Le message de ne pas pouvoir lire/usr/include/libxml2
est inhabituel. Cela semble indiquer que l'installation a été endommagée d'une manière ou d'une autre. Vérifiez si le répertoire existe toujours. Si vous l'avez déplacé ou supprimé à un moment donné… ne faites pas cela, et recréez ou reculez le répertoire pour le récupérer. Si le répertoire existe mais que vous voyez quelque chose commealors votre système de fichiers est corrompu, ou peut-être votre RAM. Tout d'abord, vérifiez votre RAM : c'est la cause la plus courante de corruption du système de fichiers. Écrivez le moins possible jusqu'à ce que vous soyez sûr de la RAM, car vous pourriez aggraver les dégâts. Comment le prendre à partir de là dépend de la nature et de l'étendue des dégâts.
la source
Essayez de le purger puis de le réinstaller.
Un
-dev
package n'est que les composants requis pour compiler des programmes liés à cette bibliothèque, il n'est pas nécessaire pour l'exécution, il est donc sûr de purger complètement.la source
apt-get clean
ce qui purgerait le cache du package et forcerait le re-téléchargement du référentiel du package dont vous aviez besoin./usr/include/libxml2
était corrompu. Mêmerm -f /usr/include/libxml2
échouerait, disant que quelque chose comme ça ne pouvait pas trouver le fichier. Il a fallu 17 heures à mon hébergeur pour le réparer.