web-dev-qa-db-fra.com

Ubuntu me dit que j'ai des paquets à mettre à jour quand je ne les ai pas

J'ai un serveur sur lequel je ne me connecte jamais à l'affichage X, uniquement via ssh. Récemment je me suis connecté et il m'a dit que j'avais

12 packages can be updated.
6 updates are security updates.

En fait, je le savais déjà car j’utilise munin sur ce serveur et sur tous mes autres serveurs. Donc de toute façon, j'ai fait "Sudo aptitude" et installé toutes les mises à jour, puis redémarré. Quelques jours plus tard, munin m'a dit que je devais mettre à jour un autre paquet, alors je me suis connecté, mais le message de connexion disait:

12 packages can be updated.
6 updates are security updates.

Je suis allé dans aptitude et installé la mise à jour. Ubuntu me dit toujours que j'ai 12 paquets à mettre à jour. Munin dit que je n'en ai pas. J'ai essayé aptitude -d -y dist-upgrade et apt-get -d -y dist-upgrade et tous deux me disent qu'il n'y a rien à installer. Alors, pourquoi les informations de connexion me disent-elles que j'ai 12 packages à mettre à jour?

18
Paul Tomblin

C'est un bug dans initscripts , corrigé dans Natty, qui copie l'état actuel de motddans /etc/motd.tail. motdest généré dynamiquement à chaque démarrage, mais motd.tail est statique (permettant à un administrateur système de placer des informations fixes à cet emplacement pour tous les utilisateurs).

La suppression de motd.tail résoudra le problème temporairement, mais une meilleure solution consiste à créer un motd.tail vide. Si le fichier n'existe pas, il peut être créé de nouveau (incorrectement) lorsque initscriptsest mis à niveau.

Créez un motd.tail avec

Sudo touch /etc/motd.tail
10
Dave Jennings

Le problème semble être la logique de /usr/lib/update-notifier/update-motd-updates-available qui décide qu'il n'y a aucune raison d'exécuter /usr/lib/update-notifier/apt-check --human-readable en fonction des horodatages de /var/lib/update-notifier/updates-available et de sources.list et de quelques autres fichiers.

Je ne sais pas quel est le bogue, mais la suppression du fichier en cache a au moins réinitialisé le nombre de mises à jour à 0, bien que Dieu sache s'il affichera le nombre correct lorsqu'il y a des mises à jour disponibles.

6
Paul Tomblin

J'ai récemment répondu à une question similaire sur Serverfault:

serveur ubuntu: bannière SSH invitant à mettre à jour des paquetages mais rien à mettre à jour

La bannière dont vous parlez s'appelle MOTD (Message du jour). Cela semble être n bogue qui peut être contourné en supprimant le fichier /etc/motd.tail.

5
Lekensteyn

Vérifiez si /etc/motd.tail contient les messages de mise à jour. Si oui, supprimez-les.

1
Karl Napf

Sur plusieurs systèmes, j'avais vu des rapports incorrects de paquets à mettre à jour, mais aussi deux lignes 'Ubuntu 10.04.2 LTS' et 'Ubuntu 10.04.1 LTS' alors que j'étais sur 10.04.2.

Comme Karl l'a dit, /etc/motd.tail contenait l'ancien texte et sa suppression résout parfaitement le problème.

1
Gordon Williams

J'ai le même problème le 10.04.2.

# aptitude install update-motd

Selecting previously deselected package update-motd.
(Reading database ... 36453 files and directories currently installed.)
Unpacking update-motd (from .../update-motd_3.5-0ubuntu1_all.deb) ...
 Removing any system startup links for /etc/init.d/update-motd ...
Setting up update-motd (3.5-0ubuntu1) ...

Mais il n'y a pas d'ultime outil de ligne de commande update-motd et je ne trouve rien sur pam_motd.

Supprimer le /etc/motd a fait disparaître le message, mais il est évident que la mise à niveau en toute sécurité aurait déjà dû le faire.

1
Steve Steiner

Si c'est simplement le message de connexion (motd) qui vous indique que les paquets doivent être mis à jour, alors il se peut que update-motd n'ait pas été exécuté depuis un moment. Essayez de lancer update-motd , puis de vous reconnecter pour voir si cela résout le problème. Il faut régénérer le fichier/etc/motd.

1
Rich Adams