2012-02-15

Ubuntuにログインしたときに出るパッケージ情報の謎

私は結構長い間 Debian を使ってきて最近 Ubuntu に移行した。Ubuntu は Debian を元にしている。大きな変更も GUI まわりを中心にたくさんあるが、細かいこしゃくな仕掛けも色々用意している。そういうものの中で最初に気づいたのが、ssh でリモートログインしたときにでるパッケージの更新情報だ。↓こういうの。

Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-13-generic x86_64)

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

52 packages can be updated.
24 updates are security updates.

これを見たときに2つの疑問が生じた。一つは、Ubuntu は Debian と違って apt-get update を定期的に行っている(そうでないと上のメッセージは出せない)が、それはどこで、という点で、もう一つは、このメッセージはいったいどういう仕掛けで出しているのか、という点だった。

一つ目の点。apt-get update の自動実行は /etc/cron.daily/apt で設定されている。このシェルスクリプトが apt の設定を読んで APT::Periodic::Update-Package-Lists を調べてそれが非 0 なら n 日に一回 apt-get update を実行するようになっている。

デフォルトではファイル /etc/apt/apt.conf.d/10periodic に APT::Periodic::Update-Package-Lists "1"; と設定され 1 日に 1 回 apt-get update が実行されるようになっている。

二つ目の点。起点は /etc/init/mounted-varrun.conf で、これは upstart により起動時に実行される。このファイルから実行される /etc/update-motd.d/90-updates-available が /usr/lib/update-notifier/update-motd-updates-available を実行し、そのファイルが /usr/lib/update-notifier/apt-check --human-readable を実行してその出力が /var/run/motd に書き込まれて、それがログイン時に表示される。

...と調べていくうちに、この機能はパッケージ update-notifier により提供されていることに気付いた。これは Debian にもあるので、Ubuntu のこしゃくな仕掛けというには当たらない。こしゃくなパッケージ選択とはいえようか。

...Debian で試してみたところ、update-notifier をインストールしただけでは表示されなかった。面倒なのでこれ以上は調べない。

0 件のコメント:

コメントを投稿