更新プログラムのインストール後に利用可能なメッセージを更新します


23

HTPCを13.04(を使用do-release-upgrade)に更新しました。ログインすると、「新しいリリースが利用可能です」というメッセージが表示されますが、そのバージョンをアップグレードして実行したばかりではありません。

me@mybox: ~$ssh htpc
me@htpc's password: 
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic i686)

 * Documentation:  https://help.ubuntu.com/

New release '13.04' available.
Run 'do-release-upgrade' to upgrade to it.

私は13.04にいますが、13.04にアップグレードできます。計画のようだ。か否か。

私が行っているapt-get updateupgrade(新しい何もなかった)し、マシンを再起動しました。なぜこのメッセージがまだここにあるのか、それを解消するために何を修正する必要があるのか​​?

多分詳細については:

htpc:~$ uname -a
Linux HTPC 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:19:42 UTC 2013 i686 athlon i686 GNU/Linux

回答:


34

犯人は /etc/update-motd.d/91-release-upgrade

これは呼び出します /usr/lib/ubuntu-release-upgrader/release-upgrade-motd

このファイルはファイルをチェックします /var/lib/ubuntu-release-upgrader/release-upgrade-available

それが存在する場合、それはに入りますmotd。そうでない場合は、を呼び出します/usr/lib/ubuntu-release-upgrader/check-new-release

その最後のコマンドは正しい結果を与えますが、ファイルは何らかの理由で削除されませんでした。ファイルを削除し、コマンドを再実行しました。その日のメッセージは元に戻されませんでした。

最後の問題は、「更新が必要」の「キャッシュ」がクリアされなかったことです。

私はこのファイルを削除し、何も壊さずに修正されました:)

sudo rm /var/lib/ubuntu-release-upgrader/release-upgrade-available

これは12.10-> 13.04のアップグレードでした。私の他のボックス(12.04 LTS、同じ問題を抱えている)では、別の場所を探す必要がありました。

sudo rm /var/lib/update-notifier/release-upgrade-available

この方法を使用し、機能しました。2日が終わるまで受け入れることはできません:)
ナネ

この徹底的な調査に感謝します。明確にするため:実行すると、古いメッセージが修正sudo rm /var/lib/ubuntu-release-upgrader/release-upgrade-availableされsudo /usr/lib/ubuntu-release-upgrader/release-upgrade-motdます。
natevw

2
その2番目のものを削除する必要はありません(または削除する必要さえありません)。これは、利用可能な新しいアップグレードをチェックするスクリプトです(ただし、以前にアップグレードを見つけて保存していない場合のみ)。ので、1つだけを/var/lib/削除する必要があると思います。
ナネ

右、release-upgrade-available "flag"を削除してから、release-upgrade-motdスクリプトを再実行します。
natevw

1
ちなみに、バグ報告があるようです- ここにあります。13.10の修正があるようです。
thegrinner

4

ファイルを開くと/etc/update-motd.d/91-release-upgrade、内部でbashを呼び出していることがわかります/usr/lib/ubuntu-release-upgrader/release-upgrade-motd。内部でこのファイルを開くと、次のコードが見つかります。

stamp=/var/lib/ubuntu-release-upgrader/release-upgrade-available
if [ -s "$stamp" ]; then
        # Stamp exists and is populated, so display
        cat "$stamp"
        echo
elif [ -f "$stamp" ]; then
        # Stamp exists, but is empty, see if it's expired
        now=$(date +%s)
        lastrun=$(stat -c %Y "$stamp") 2>/dev/null || lastrun=0
        expiration=$(expr $lastrun + 86400)
        if [ $now -ge $expiration ]; then
                # But is older than 1 day old, so update in the background
                /usr/lib/ubuntu-release-upgrader/check-new-release -q > "$stamp$
        fi
else
        # No cache at all, so update in the background
        /usr/lib/ubuntu-release-upgrader/check-new-release -q > "$stamp" &
fi

スタンプ変数は/var/lib/ubuntu-release-upgrader/release-upgrade-available、存在する場合はファイルごとに読み込まれ、空の場合は新しいリリースが存在するかどうかを確認します。で/var/lib/ubuntu-release-upgrader/release-upgrade-availableあなたはテキストエディタで開いた場合(nanovi...)あなたは、Ubuntuの新しいリリースがあることだけメッセージを見つけますので、あなたはそれを空にしたり、新しいリリースがあるかどうかを確認するために強制的に削除する場合。

私の悪い英語について説明してごめんなさい。


1

してみてくださいsudo apt-get dist-upgrade
あなたはこのファイルにそのメッセージを持っていることがあり/etc/motd
ますが、最新にしている場合は、あなたが実行することができsodo rm /etc/motd、編集をカスタムウェルカムテキストを持っている場合- <


まあ、それはmotd実際には(motdのように)ありますが、それは不正行為ではないでしょうか?システムは何らかの理由で更新されていると考えているので、その理由を知りたいと思います
-Nanne

第一コマンドでも実行した後、更新見つからない場合sudo apt-get updatelsb_release -sc、あなたが与えるraringあなたが更新され、メッセージが正しくないため、削除する必要がある
GM-スクリプトライター-62850

同意する。私はあなたのmotdを削除する方法に同意しません;)
ナネ

+1をmotdに向けてくれましたが、完全な答えではありません。それを削除しただけで戻ってきたからです。
ナネ

0

私は次のことをしました:

  1. cd /var/lib/ubuntu-release-upgrader/
  2. mv release-upgrade-available release-upgrade-available.old
  3. cd /usr/lib/ubuntu-release-upgrader/
  4. ./check-new-release
  5. ログアウト/ログイン

MOTDは正常に戻りました。

おそらく上記と同じですが、結果を完全に知らずに物を削除するのは好きではありません。そのファイルをそのまま残し、13.10が10月にアップグレードを促すのを待ちます。それが機能していることがわかったら、.oldファイルを削除します(または、実際には何も傷つけていません)。


ファイルはフラグです。これを行う必要はまったくありません。
ナネ

0

修正がリリースさsudo aptitude update && sudo aptitude full-upgradeれました。実行するだけで、メッセージは削除されます。


これはシステム全体を更新しませんか?とにかく、この質問は、メッセージが消えない場合の対処方法に関するものです。おそらく再びタフになることはありませんが、コメントとしては良いかもしれません。
ナネ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.