Comment puis-je résoudre la dépendance de dpkg?


32
administrator@zlounes:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 linux-server : Depends: linux-headers-server (= 3.2.0.37.44) but 3.2.0.37.45 is installed
E: Unmet dependencies. Try using -f.
administrator@zlounes:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-image-server linux-server
The following packages will be upgraded:
  linux-image-server linux-server
2 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
4 not fully installed or removed.
Need to get 0 B/4,458 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'linux-image-server'
Setting up initramfs-tools (0.99ubuntu13.1) ...
update-initramfs: deferring update (trigger activated)
Setting up linux-image-3.2.0-37-generic (3.2.0-37.58) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-3.2.0-37-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
update-initramfs: Generating /boot/initrd.img-3.2.0-37-generic

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-37-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-37-generic.postinst line 1010.
dpkg: error processing linux-image-3.2.0-37-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of linux-image-server:
 linux-image-server depends on linux-image-3.2.0-37-generic; however:
  Package linux-image-3.2.0-37-generic is not configured yet.
dpkg: error processing linux-image-server (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Package linux-image-server is not configured yet.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-36-generic
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          No apport report written because the error message indicates its a followup error from a previous failure.

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-36-generic with 1.
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 linux-image-3.2.0-37-generic
 linux-image-server
 linux-server
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

J'ai beaucoup essayé et je n'arrive pas à faire fonctionner ça. Je pense que j'ai interrompu une installation et ça a tout foutu en l'air. J'ai googlé et essayé diverses corrections.

EDIT (après avoir nettoyé mon dossier / boot):

administrator@zlounes:/boot$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-server
The following packages will be upgraded:
  linux-server
1 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,734 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'linux-server'
dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Version of linux-image-server on system is 3.2.0.37.45.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          E: Sub-process /usr/bin/dpkg returned an error code (1)
administrator@zlounes:/boot$

1
pourquoi supposez-vous un problème avec les dépendances des packages lorsque l'erreur indique gzip: stdout: No space left on device? Il me semble que les dépendances ne sont PAS installées car vous manquez d'espace pour installer le logiciel.
Rinzwind

Veuillez ajouter les résultats de df. Je suppose que votre /bootpartition est pleine.
Rinzwind

Je vous remercie :). J'ai nettoyé mon dossier / boot mais j'ai encore la même erreur (j'ai édité mon premier post avec une erreur de code), merci d'avance et désolé pour mon pauvre anglais
zlounes

Par «nettoyer mon dossier de démarrage», voulez-vous dire que vous avez supprimé des fichiers dans ce dossier? Vous n'aimerez probablement pas les résultats de cette opération.
Jack

Non c'est bon, j'ai sélectionné le fichier;)
zlounes

Réponses:


65

Un bon essai pour vous assurer que votre système est en bon état et n'a pas de problèmes avec une installation abandonnée est d'appeler

  dpkg --configure -a 

Assurez-vous que la liste des packages est mise à jour et qu'aucun problème n'apparaît sur:

 apt-get update

Facultatif, vous pouvez supprimer toutes les anciennes données avant la mise à jour avec:

 find /var/lib/apt/lists -type f  |xargs rm -f >/dev/null \

L'étape suivante pour résoudre le problème consiste à supprimer le package linux-server pendant un certain temps. Cela peut être fait car il n'a pas de contenu réel et n'introduit qu'une dépendance:

Ce package dépendra toujours du dernier noyau Linux complet disponible pour l'équipement serveur.

 dpkg --remove linux-server

Après cette étape, vérifiez que toutes les dépendances actuelles sont installées:

apt-get install -f

Si tout va bien, vous pouvez maintenant réinstaller linux-server :

apt-get install linux-server

Post Scriptum

linux-server est déconseillé en 12.04 . Également pour l'équipement serveur, le noyau générique est utilisé. Voirapt-cache show linux-image-server

Paquet: linux-image-server ...

Section: métapaquets

....

Dépend: linux-image-3.2.0-23- générique , linux-firmware


Merci beaucoup. Je pensais que je passerais une journée à réinstaller le serveur ..
uncletall

8

Je dois régulièrement nettoyer le / boot de mes machines et généralement être trop plein interrompt la mise à jour - je ne sais pas quelle est la solution ultime, mais le processus que j'utilise semble fonctionner:

Commencez avec un sudo su

Ensuite, allez dans / boot et faites un ls -lSrh- ceux du bas sont les plus grands - rmsuffisamment d'anciens pour libérer suffisamment d'espace.

Ensuite, essayez ce qui suit (extrait un peu ci-dessus):

  1. sudo apt-get remove linux-server
  2. dpkg --configure -a
  3. apt-get update
  4. apt-get install -f
  5. apt-get autoremove
  6. dpkg --get-selections|grep 'linux-image*'|awk '{print $1}'|egrep -v "linux-image-$(uname -r)|linux-image-generic" |while read n;done
  7. apt-get install linux-image-server linux-server
  8. reboot

Si quelque chose échoue, faites un commentaire ici et je verrai quel pourrait être le problème.

J'ai vu ce genre de chose fonctionner pour les problèmes de package postgresql-9.1 lors de l'utilisation du PPA pitti également.

Une fois, lorsque j'ai exécuté la procédure, j'ai eu un problème avec grub. Faire un apt-get install --reinstall grubfixe.

Merci pour la doublure qui va à: http://ubuntuforums.org/showpost.php?p=12180959&postcount=7

Bonne chance!


L'étape 6 semble avoir été coupée: dpkg --get-selections | grep 'linux-image *' | awk '{print $ 1}' | egrep -v "linux-image - $ (uname -r) | linux-image -generic "| pendant la lecture n; faire apt-get -y supprimer $ n; fait
Tom Swifty

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.