Ubuntu me dit que j'ai des packages à mettre à niveau quand je ne le fais pas

18

J'ai une machine serveur sur laquelle je ne me connecte jamais à l'écran 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à parce que je lance munin dessus et 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 à niveau un autre paquet, alors je me suis connecté, mais le message de connexion a dit:

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

Je suis entré dans aptitude et j'ai installé la seule 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-upgradeet apt-get -d -y dist-upgradeet les 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?

Paul Tomblin
la source
Avez-vous sudo aptitude updaterecommencé? Juste pour vous assurer qu'il est mis à jour;) En outre, l'exécution sudo aptitude safe-upgradepeut aider, vous pouvez utiliser aptitude comme apt-get, avec les arguments de la ligne de commande ... aptitudeseul démarre l'interface interactive, que je connais personnellement, un bon groupe d'utilisateurs n'utilise pas .
Thomas Ward
@Evil, ce n'est pas l'aptitude qui pose problème, c'est tout ce qu'Ubuntu utilise pour signaler le nombre de paquets à mettre à niveau. aptitude a installé les 12 mises à jour du package il y a quelques jours.
Paul Tomblin
1
FWIW, je vois le même problème sur Ubuntu 10.10 maintenant. Peut-être un bug?
grm
Oui, pourriez-vous soumettre un bug à ce sujet? et un lien vers cette question.
Jeremy Bicha
Sur Trusty 14.04.3 LTS, l'exécution de "sudo aptitude safe-upgrade" a supprimé ces messages, contrairement à "sudo apt-get upgrade".
Beebee

Réponses:

10

C'est un bogue dans les scripts d'initialisation , corrigé dans Natty, qui copie l'état actuel demotd to /etc/motd.tail. motdest généré dynamiquement à chaque démarrage mais motd.tailest statique (permettant à un administrateur système d'y placer des informations fixes pour tous les utilisateurs).

Suppression motd.tail résoudra temporairement le problème, mais une meilleure solution consiste à créer un espace vide motd.tail. Si le fichier n'existe pas, il peut être recréé (incorrectement) lors de la initscriptsmise à niveau.

Créez un vide motd.tailavec

sudo touch /etc/motd.tail
Dave Jennings
la source
2
Je vois ce même problème dans 12.04.2 LTS, et il n'y a pas de /etc/motd.tailfichier; juste /etc/motd, qui contient le texte incriminé. L'horodatage ("Informations système à partir de ...") est précis, mais le nombre de packages pouvant être mis à jour ne l'est pas.
Lambart
6

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

Je ne sais pas quel est le bogue réel, mais la suppression du fichier mis en cache l'a au moins réinitialisé à 0 mises à jour, bien que Dieu sache seulement s'il affichera le bon numéro lorsqu'il y aura des mises à jour disponibles.

Paul Tomblin
la source
1

Si c'est juste le message de connexion (motd) qui vous dit que les packages doivent être mis à jour, alors il se peut que cela update-motdne se soit pas exécuté depuis un certain temps. Essayez d'exécuter update-motd, puis reconnectez-vous pour voir si cela résout le problème. Il devrait régénérer le fichier / etc / motd.

Rich Adams
la source
Les informations sur le package de update-motd indiquent "La fonctionnalité précédemment fournie par ce package est désormais intégrée à pam_motd, dans les modules libpam."
Paul Tomblin
1

Sur plusieurs systèmes, j'avais vu des rapports incorrects de paquets à mettre à jour, mais aussi 2 lignes 'Ubuntu 10.04.2 LTS' et 'Ubuntu 10.04.1 LTS' même si j'étais sur 10.04.2.

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

Gordon Williams
la source
1

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 de mots clés de l'outil de ligne de commande update-motd et je ne trouve rien sur pam_motd.

La suppression du /etc/motdmessage a disparu, mais il est évident que la mise à niveau sûre aurait déjà dû le faire.

Steve Steiner
la source
1

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

Karl Napf
la source