Ubuntu говорит мне, что у меня есть пакеты для обновления, когда я не

17

У меня есть серверная машина, на которой я никогда не запишусь на X-дисплей, только через ssh. Недавно я вошел и сказал, что у меня

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

Я уже знал это, потому что я запускаю munin на нем и на всех моих других серверах. Так или иначе, я сделал «sudo aptitude» и установил все обновления, а затем перезагрузился. Несколько дней спустя, мунин сказал мне, что мне нужно обновить другой пакет, поэтому я вошел в систему, но в сообщении для входа сказано:

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

Я пошел в aptitude и установил одно обновление. Ubuntu все еще говорит мне, что у меня есть 12 пакетов для обновления. Мунин говорит, что у меня их нет. Я пробовал aptitude -d -y dist-upgrade и apt-get -d -y dist-upgrade , и оба они сказали мне, что устанавливать нечего. Итак, почему информация о регистрации все еще говорит мне, что у меня есть 12 пакетов для обновления?

    
задан Paul Tomblin 22.04.2011 в 22:00
источник

7 ответов

9

Это ошибка в initscripts , исправлена ​​в Natty, которая копирует текущее состояние от motd до /etc/motd.tail . motd динамически генерируется всякий раз, когда вы загружаетесь, но motd.tail статично (позволяя системному администратору размещать некоторую фиксированную информацию для всех пользователей).

Удаление motd.tail устранит проблему временно, но лучшим решением будет создание пустого motd.tail . Если файл не существует, он может быть создан снова (неправильно), когда initscripts обновляется.

Создайте пустой motd.tail с

sudo touch /etc/motd.tail
    
ответ дан Dave Jennings 20.05.2011 в 21:06
источник
5

Проблема заключается в логике в /usr/lib/update-notifier/update-motd-updates-available , которая решает, что нет причин запускать /usr/lib/update-notifier/apt-check --human-readable на основе временных меток на /var/lib/update-notifier/updates-available и sources.list и нескольких других файлах.

Я не уверен, какова фактическая ошибка, но удаление кэшированного файла, по крайней мере, перезагружает его до 0 обновлений, хотя Бог знает, покажет ли он правильный номер при наличии доступных обновлений.

    
ответ дан Paul Tomblin 23.04.2011 в 12:07
5

Недавно я ответил на аналогичный вопрос в Serverfault:

сервер ubuntu: баннер SSH для обновления пакетов, но ничего не обновляется

Этот баннер, о котором вы говорите, называется MOTD (Message Of The Day). Кажется, это ошибка , которая может быть устранена путем удаления файл /etc/motd.tail .

    
ответ дан Lekensteyn 20.05.2011 в 20:16
1

Проверьте, содержит ли /etc/motd.tail сообщение об обновлении. Если да, удалите их.

    
ответ дан Karl Napf 27.04.2011 в 22:04
0

Если это только сообщение для входа (motd), в котором говорится, что пакеты нуждаются в обновлении, возможно, это просто update-motd не запускается через некоторое время. Попробуйте запустить update-motd , а затем снова войдите в систему, чтобы узнать, исправляет его. Он должен восстановить файл / etc / motd.

    
ответ дан Rich Adams 22.04.2011 в 23:40
0

В нескольких системах я видел неправильные отчеты об обновляемых пакетах, а также 2 строки «Ubuntu 10.04.2 LTS» и «Ubuntu 10.04.1 LTS», хотя я был 10.04.2.

Как сказал Карл, /etc/motd.tail содержит старый текст, и удаление его полностью разрешило проблему для меня.

    
ответ дан Gordon Williams 20.05.2011 в 11:28
0

У меня такая же проблема 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) ...

Но нет никаких инструментов командной строки в командной строке update-motd, и я ничего не могу найти о pam_motd.

Удаление /etc/motd заставило сообщение уйти, но, очевидно, безопасное обновление должно было уже сделать это.

    
ответ дан Steve Steiner 04.05.2011 в 12:17