パッケージを自動アップデート(yum-updatesd-3.0.1)[FC6]
作成 : 2006/11/19
Fedora Core 5での自動アップデート
Fedora Core 5では、cronで定期的にyumを実行して自動アップデートをしていた。
# /etc/init.d/yum #!/bin/bash # # yum This shell script enables the automatic use of YUM # # Author: Seth Vidal# # chkconfig: - 50 01 # # description: Enable daily run of yum, a program updater. # processname: yum # config: /etc/yum.conf # # source function library . /etc/rc.d/init.d/functions lockfile=/var/lock/subsys/yum RETVAL=0 start() { echo -n $"Enabling nightly yum update: " touch "$lockfile" && success || failure RETVAL=$? echo } stop() { echo -n $"Disabling nightly yum update: " rm -f "$lockfile" && success || failure RETVAL=$? echo } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|force-reload) restart ;; reload) ;; condrestart) [ -f "$lockfile" ] && restart ;; status) if [ -f $lockfile ]; then echo $"Nightly yum update is enabled." RETVAL=0 else echo $"Nightly yum update is disabled." RETVAL=3 fi ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}" exit 1 esac exit $RETVAL
# /etc/cron.daily
#!/bin/sh
if [ -f /var/lock/subsys/yum ]; then
/usr/bin/yum -R 120 -e 0 -d 0 -y update yum
/usr/bin/yum -R 10 -e 0 -d 0 -y shell /etc/yum/yum-daily.yum
fi
# /etc/yum/yum-daily.yum
update
ts run
exit
Fedora Core 6での自動アップデート
Fedora Core 6では、yum-updatesdパッケージを利用して自動アップデートを行う。
注意 yum-updatesd-3.0-6では、PIDファイル(/var/run/yum.pid)を残して、自動アップデートは失敗してしまう。 さっさとyum-updatesdパッケージをアップデートするのが吉。 ちなみに、PIDファイルが残っていると、手動でyumを実行しようとしたときエラーになる。 PIDファイルを削除すれば、実行可能になる。
# yum update
Loading "installonlyn" plugin
Existing lock /var/run/yum.pid: another copy is running. Aborting.
yum-updatesdの設定
yum-updatesdの設定は、/etc/yum/yum-updatesd.confに記述する。
# /etc/yum/yum-updatesd.conf [main] # アップデートされたパッケージがあるか、チェックする間隔 # デフォルトの記述だと、3600秒=1時間 # how often to check for new updates (in seconds) run_interval = 3600 # なんなのでしょう # how often to allow checking on request (in seconds) updaterefresh = 600 # アップデートをユーザに通知する方法 # デフォルトの記述だとdbus # dbus : GNOMEを使っていると、パネルに通知されるらしい # email : メールで通知 # syslog : syslog(/var/log/messages)に記録 # how to send notifications (valid: dbus, email, syslog) emit_via = email # メールで通知する宛先を指定 email_to = root@localhost # メールの送信者を指定 email_from = yum-updatesd@localhost # yesを指定すると、自動アップデートを実行 # automatically install updates do_update = no # yesを指定すると、アップデートされたパッケージをダウンロード # automatically download updates do_download = no # yesを指定すると、アップデートされたファイルとともに、依存関係にあるパッケージもダウンロード # automatically download deps of updates do_download_deps = no # do_update、do_download、do_download_depsをすべてnoにすると通知だけ行う
yum-updatesdを起動(dbus-daemonも起動)
dbus-daemonが起動していないと、yum-updatesdを起動できないようだ。
# /etc/init.d/yum-updatesd start Starting yum-updatesd: [ OK ] # ps -ef | grep yum root 2718 2654 0 14:12 pts/0 00:00:00 grep yum # /etc/init.d/yum-updatesd status yum-updatesd dead but subsys locked
dbus-daemonを起動してから、yum-updatesdを起動する。
# /etc/init.d/messagebus start Starting system message bus: [ OK ] # /etc/init.d/messagebus status dbus-daemon (pid 4472) is running... # /etc/init.d/yum-updatesd start Starting yum-updatesd: [ OK ] # ps -ef | grep yum root 2757 1 6 14:14 pts/0 00:00:00 /usr/bin/python /usr/sbin/yum-updatesd root 2760 2654 0 14:14 pts/0 00:00:00 grep yum # /etc/init.d/yum-updatesd status yum-updatesd (pid 2757) is running...
プロセスが自動的に起動するよう、chkconfigを実行しておく。
# chkconfig messagebus on # chkconfig yum-updatesd on
自動アップデートを無効(do_update=no)にしたときの通知
emit_via=syslogを指定すると、/var/log/messageに記録される。
Nov 5 15:06:08 localhost yum-updatesd: 21 updates available
emit_via=emailを指定すると、メールで通知される。 デフォルトは、rootさんからrootさん宛。 email_toとemail_fromで、送信先と送信元を変更することができる。
Subject: 21 Updates Available
From: root@localhost.localdomain
To: root@localhost.localdomain
Hi,
There are 21 package updates available. Please run the system
updater.
Thank You,
Your Computer
自動アップデートを有効(do_update=yes)にしたときの通知
通知されない.... /var/log/yum.logにログが残る分、cronでyumを実行した方がいいのかなあ。