APT coincé par le décalage de version du noyau


18

Apt est apparemment incapable de faire quoi que ce soit d'utile pour moi, donnant à plusieurs reprises 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-image-server, linux-server) qui a été fermé Duplicate à une réponse qui est totalement inutile pour 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 aucun effet. 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

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

Réponses:


20

Vous avez couru sudo apt-get updateet le problème persiste. Vous avez donc probablement juste une version plus récente de linux-image-serveret linux-headers-serverque n'importe quel linux-serverpackage disponible à partir de vos sources logicielles configurées .

Cela peut se produire pendant une très courte période même si vous utilisez le serveur central (ou pendant une plus longue période en cas de problème de mise à jour). Ma compréhension est 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 package révèle que la version 3.2.0.37.45 des deux linux-image-serveret linux-serverexiste pour Ubuntu 12.04. C'est donc probablement lié à votre miroir.

Voici quelques alternatives:

Ignore It

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

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

Vous disposez déjà des dernières versions de linux-headers-serveret linux-image-server. Je suppose que c'est un système 64 bits, c'est pourquoi aucun message sur linux-generic-paen'a été affiché. Il semble que tout va bien.

Pourtant:

  • Si le problème empêche la mise à jour et l'installation d'autres packages de fonctionner (au lieu de simplement afficher ces messages chaque fois que vous le faites mais sans y interférer), vous devez alors appliquer une autre solution.
  • Vous pouvez également le faire si vous n'aimez pas voir ces messages tout le temps et que vous souhaitez vous en débarrasser.
  • C'est un peu étrange que vous n'obteniez pas ce package, même si vous utilisez un miroir qui traîne un peu derrière le serveur de téléchargement principal, car ce package 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 qu'il est activé. Vous voudrez peut-être sauvegarder sources.listavant de le modifier ( sudo cp /etc/apt/sources.list /etc/apt/sources.list.old). Le problème peut également être la conséquence d'un proxy Web de mise en cache (si vous en utilisez un) avec des données périmées. (Les solutions ci-dessous fonctionneront également.)

Passer à un autre serveur de téléchargement

Je suppose que vous utilisez un système Ubuntu Server et que vous n'avez probablement pas d'interface graphique installée. Alors, voyez:

Après avoir changé votre miroir, exécutez:

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

Si vous le souhaitez, vous pouvez changer de serveur après la linux-servermise à jour.

Téléchargez et installez manuellement le .debfichier de package

Vous pouvez télécharger et installer manuellement le .debfichier pour la dernière version du linux-servermétapaquet dans Ubuntu 12.04.

cd à l'endroit 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-le à 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 pour le linux-metapaquet source dans Ubuntu .)

Maintenant (pour 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 à taper le nom du package et utilisez-le Tabpour le terminer.)

Supprimer le package

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

Il y a deux étapes, si vous souhaitez le supprimer. La première consiste à désinstaller linux-server. la seconde consiste à s'assurer que les packages ne seront pas supprimés automatiquement plus tard.

Les dépendances ne seront pas supprimées immédiatement . Donc, peu importe laquelle de ces étapes vous effectuez 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 informer APT (le gestionnaire de packages) des packages que vous avez l'intention d'installer même s'il ne reste rien qui les déclare une dépendance, marquez-les comme 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, exécutez-le à la place:

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

(Vous devriez l'avoir, apt-markmais si vous ne le faites pas et que vous ne pouvez pas installer le logiciel, vous pouvez utiliser apt-get installau lieu de - apt-mark manualspécifier un package manuellement pour l'installation le marque comme installé manuellement même s'il était déjà installé.)

Source: marquez un paquet deb comme utilisé, il n'est donc pas suggéré pour la suppression automatique
(en particulier, la réponse de Lekensteyn .)


3
Merci pour la réponse détaillée. Changer les miroirs n'a pas du tout changé la situation. Mais l'installation manuelle de la nouvelle version de linux-server ( linux-server_3.2.0.37.45) a résolu le problème.
Leopd

2
Dans mon cas, je ne pouvais utiliser apt-get pour rien. J'ai toujours reçu l'erreur de dépendance non satisfaite pour linux-server. Inspiré par vos conseils, j'ai essayé ce qui suit, qui a fonctionné et était beaucoup plus simple:sudo apt-get remove linux-server && sudo apt-get install linux-server
Andrew Ensley

4

Si vous aviez une installation complète / démarrage et une mise à niveau de sécurité automatique cassée, vous pourriez être dans le même bateau que moi.

Je ne pouvais pas faire quoi que ce soit, donc les conseils traditionnels de démarrage / démarrage ne fonctionnaient pas. J'ai supprimé manuellement les anciennes données du noyau. Ne supprimez pas le noyau en cours d'exécution, 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 désordre du problème de noyau installé 1/2. Après tout cela, je pouvais enfin «sudo apt-get upgrade» et faire bouger les choses à nouveau.

Pour faire bonne mesure, j'ai jeté un '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.


J'ai écrit un peu plus sur ce processus ici: askubuntu.com/a/430944/47461 En tant qu'entrepreneur, je rencontre souvent ce problème.
flickerfly

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.