APT bloqué par une incompatibilité de version du kernel

Apt est apparemment incapable de faire quelque chose d’utile pour moi, donnant à plusieurs resockets des messages de cette forme:

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 

C’est fondamentalement le même problème car je ne peux installer aucun paquet (erreurs de dépendances linux-server, linux-image-server) qui a été fermé. Dupliquer en une réponse totalement inutile dans cette situation. Aucun des conseils de cette réponse très générique sur les dépendances n’aide.

Explicitement:

 sudo apt-get clean sudo apt-get autoclean sudo apt-get update 

tous n’ont pas d’effet non. Tandis que

 sudo apt-get -f install sudo dpkg --configure -a sudo apt-get -u dist-upgrade sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade 

tous donnent une certaine forme du message d’erreur ci-dessus.

Vous avez exécuté sudo apt-get update et le problème persiste. Ainsi, vous ne disposez probablement que d’une version plus récente de linux-image-server et de linux-headers-server que tout paquet linux-server disponible à partir de vos sources de logiciels configurés .

Cela peut se produire très brièvement, même si vous utilisez le serveur central (ou plus longtemps en cas de problème de mise à jour). Je crois comprendre que cela peut se produire pendant de plus longues périodes si vous utilisez un miroir. Cela ne signifie pas que vous ne devriez pas utiliser de miroir – le serveur central ( http://archive.ubuntu.com ) est généralement très lent et les miroirs nationaux, régionaux ou autres sont beaucoup plus rapides.

Une recherche de paquet révèle que la version 3.2.0.37.45 de linux-image-server et de linux-server existe pour Ubuntu 12.04. Donc, c’est probablement lié à votre miroir.

Voici quelques alternatives:

L’ignorer

Si vous pouvez utiliser le gestionnaire de paquets à d’autres fins, par exemple pour installer d’autres paquets, vous pouvez simplement ignorer ceci. Lorsque votre miroir sera mis à jour, vous obtiendrez probablement le package.

Ce n’est pas un problème de ne pas avoir le dernier paquet linux-server , car c’est un métapaquet qui ne fournit aucun logiciel réel. Il existe uniquement pour pouvoir répertorier trois packages en tant que dépendances , en veillant à ce qu’ils restnt installés:

  • linux-generic-pae (ceci n’est qu’une dépendance de i386 – 32 bits, c’est-à-dire – systèmes)
  • linux-headers-server
  • linux-image-server

Vous avez déjà les dernières versions de linux-headers-server et linux-image-server . À mon avis, il s’agit d’un système 64 bits, c’est pourquoi aucun message concernant linux-generic-pae n’a été affiché. Il semble que tout va bien.

Toutefois:

  • Si le problème empêche la mise à jour et l’installation d’autres packages (plutôt que de simplement afficher ces messages à chaque fois sans interférer avec celui-ci), vous devez appliquer une autre solution.
  • Vous pouvez également le faire si vous n’aimez pas tout le temps voir ces messages et que vous souhaitez vous en débarrasser.
  • C’est un peu étrange que vous n’ayez pas ce paquet, même si vous utilisez un miroir un peu en retard par rapport au serveur de téléchargement principal, car ce paquet est également fourni par http://security.ubuntu.com . Ce serveur doit toujours être activé dans /etc/apt/sources.list . Je recommande donc de vérifier pour vous assurer que cela est activé. Vous voudrez peut-être sauvegarder sources.list avant de le modifier ( sudo cp /etc/apt/sources.list /etc/apt/sources.list.old ). Le problème peut également être une conséquence d’un proxy Web en cache (si vous en utilisez un) avec des données obsolètes. (Les solutions ci-dessous vont contourner ça aussi.)

Passer à un autre serveur de téléchargement

J’imagine que vous utilisez un système serveur Ubuntu et que vous n’avez probablement pas d’interface graphique installée. Alors, voir:

  • Comment changer de miroir dans Ubuntu Server de régional à principal?

Après avoir changé votre miroir, lancez:

 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 

Si vous le souhaitez, vous pouvez modifier votre serveur après la mise à jour de linux-server .

Téléchargez et installez manuellement le fichier de package .deb

Vous pouvez télécharger et installer manuellement le fichier .deb pour la dernière version du méta linux-server paquet linux-server dans Ubuntu 12.04.

cd dans le cd où vous souhaitez télécharger le package.

S’il s’agit d’un système 64 bits, exécutez:

 wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_amd64.deb 

S’il s’agit d’un système 32 bits, exécutez ceci à la place:

 wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_i386.deb 

(J’ai obtenu ces deux liens sur la page Launchpad du paquet source linux-meta dans Ubuntu .)

Maintenant (pour les versions 64 bits et 32 ​​bits), exécutez cette commande pour installer le package:

 sudo dpkg -i linux-server_3.2.0.23.25_*.deb 

(Ou commencez simplement à saisir le nom du paquet et utilisez Tab pour le compléter.)

Retirer le paquet

Comme il s’agit d’un logiciel fournissant un métapaquet que vous avez déjà, vous pouvez supprimer le package. Ensuite, vous n’obtiendrez plus l’erreur. Vous pouvez le réinstaller ultérieurement si vous le souhaitez (vous pouvez également exécuter régulièrement la apt-get update && apt-cache policy linux-server pour voir si la nouvelle version est disponible).

Il y a deux étapes si vous voulez le supprimer. La première consiste à désinstaller linux-server . la seconde est de s’assurer que les paquets ne seront pas automatiquement supprimés plus tard.

Les dépendances ne seront pas supprimées immédiatement . Donc, peu importe laquelle de ces étapes vous faites en premier.

1. Désinstallez linux-server .

Pour désinstaller linux-server , exécutez simplement:

 sudo apt-get remove linux-server 

2. Marquer ses dépendances comme installées manuellement

Pour indiquer à APT (le gestionnaire de paquets) les paquets que vous avez l’intention d’installer même s’il ne rest plus rien qui les déclare dépendants, marquez-les comme étant installés manuellement.

Pour ce faire, exécutez cette commande, s’il s’agit d’un système 64 bits:

 sudo apt-mark manual linux-image-server linux-headers-server 

S’il s’agit d’un système 32 bits, lancez ceci à la place:

 sudo apt-mark manual linux-image-server linux-headers-server linux-generic-pae 

(Vous devriez avoir apt-mark mais si ce n’est pas le cas et que vous ne pouvez pas installer de logiciel, vous pouvez utiliser apt-get install place d’ apt-mark manual spécifier un paquet manuellement pour l’installation le marque comme tel. Même si si était déjà installé.)

Source: marque un paquet deb comme utilisé, il n’est donc pas suggéré pour le retrait automatique.
(En particulier, la réponse de Lekensteyn .)

Si vous aviez une installation de mise à niveau complète de sécurité / automatique et automatique, vous êtes peut-être dans le même bateau que moi.

Je ne pouvais pas obtenir apt-get pour faire quoi que ce soit si des conseils complets / boot traditionnels ne fonctionnent pas. J’ai supprimé manuellement les anciennes données du kernel. Ne supprimez pas le kernel courant, vérifiez avec ‘uname -a’. J’ai supprimé avec ‘sudo rm / boot / -3.2.0- {23,24,25,26} – .

Ensuite, j’ai dû exécuter ‘sudo apt-get remove linux-server’ et ‘sudo apt-get install linux-server’ pour corriger le fouillis causé par le problème de la moitié du kernel installé. Après tout cela, je pouvais enfin ‘sudo apt-get upgrade’ et faire bouger les choses.

Pour faire bonne mesure, j’ai lancé dans ‘sudo update-grub’ et ‘sudo apt-get autoremove’ pour m’assurer que le menu de démarrage était précis et que les autres paquets avaient été nettoyés.

Dans la situation avec Ubuntu 12.04, il était nécessaire d’installer manuellement linux-headers-server et linux-server (comme suggéré ci-dessus – je l’aurais commentée mais je n’ai pas encore ce privilège), puis apt-get remove linux-headers-virtual, qui ne semble plus exister sous forme de paquet 64 bits pour 12.04.

sudo wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-headers-server_3.2.0.64.76_amd64.deb