web-dev-qa-db-fra.com

Réparer un gestionnaire de paquets dpkg et apt cassé

Je travaille VM que je n’avais jamais administré et il est en mauvais état (mais j’ai besoin de le sauver). Je ne suis pas un expert Linux, mais au cours des 5 dernières années, j'ai pu résoudre des problèmes en utilisant Google. Après une journée complète hier, je ne savais plus quoi faire que de poser des questions idiotes en énonçant simplement mon problème.

  • Le système ne fera pas un démarrage régulier (je peux cependant ouvrir un shell racine de secours dans lequel je peux monter le système de fichiers et permettre la mise en réseau dans une certaine mesure (je peux atteindre des réseaux extérieurs mais je ne peux pas ouvrir le port 22 ni démarrer un ssh deamon - Je peux cependant démarrer Apache et ouvrir le port 80)
  • Je ne peux ni installer ni supprimer de logiciel car dpkg se plaint toujours d'anciennes images d'en-tête linux (je pense qu'un ancien administrateur a supprimé manuellement les en-têtes linux de la partition de démarrage pour libérer de l'espace.)
  • Maintenant, chaque fois que j'essaye de faire apt-get installer ou supprimer ou mettre à jour ou quoi que ce soit, il se plaint du trop grand nombre d'erreurs dans dkpg et surtout des erreurs avec d'anciennes images linux (qui ne sont pas présentes sur ma partition de démarrage) et cela annule . Il se plaint également de ne pas trouver de fichiers (liés aux anciens en-têtes Linux)
  • J'ai trouvé une instruction suggérant de réinstaller grub2 que j'ai suivie. Je pense que la suppression a fonctionné, mais que l’installation a échoué de la même manière qu’aucun autre logiciel ne peut être installé. Je suis convaincu que la prochaine fois que je ne redémarrerai pas la machine, je ne pourrai même pas entrer dans un système de secours, car grub2 semble être désinstallé.
  • Je ne peux pas faire quelque chose comme apt-get install linux-image-generic

Je comprends que ce message ne pose même pas une question appropriée, mais je ne sais même pas comment en formuler une. Il semble y avoir tellement de choses qui ne fonctionnent pas que j'ai évidemment oublié où commencer.

modifier

sortie de dpkg --get-selections: http://Pastebin.com/CRFaaJ7m

sortie de apt-get install linux-generic: http://Pastebin.com/7t20Bav

sortie de dpgk --configure -a: http://Pastebin.com/Hpmch9dM

je pense aussi que le résultat pourrait être intéressant (surtout à partir de la ligne 484): http://Pastebin.com/uUi86FtT

1
Rene Pickhardt

N'a pu voir qu'un ancien noyau à partir de l'état dpkg, mais je ne suis pas sûr qu'il soit réellement sur le disque.

En tous cas:

  1. Faire une sauvegarde du fichier d'état DPKG

    cp /var/lib/dpkg/status /var/lib/dpkg/status.backup0
    
  2. Efface ces noyaux supprimés manuellement du statut DPKG

    Vérifiez quelle ligne est l'entrée du paquet

    grep -n linux-image-extra-3.13.0-93-generic /var/lib/dpkg/status
    

    Statut ouvert pour modification (changez xxxxx avec le numéro de ligne)

    nano +xxxxx /var/lib/dpkg/status
    

    Changez son statut en deinstall comme dans cet exemple

    Package: linux-image-extra-3.13.0-93-generic
    Status: install ok installed
    

    à

    Package: linux-image-extra-3.13.0-93-generic
    Status: deinstall ok config-files
    

    Ctrl+O sauver & Ctrl+X pour quitter

  3. Effectuer l'étape précédente pour les packages suivants

    linux-image-3.13.0-93-generic
    linux-image-extra-3.13.0-101-generic
    linux-image-3.13.0-101-generic
    
  4. Modifier le script post-installation de DBus pour ignorer les erreurs

    nano /var/lib/dpkg/info/dbus.postinst
    

    et commenter set -e#set -e (autour de la ligne 5)

  5. Continuer l'installation précédente

    dpkg --configure -a
    
  6. Réparer les dépendances

    apt -f install
    
2
user.dz