portsnapを使ってportsツリーを更新
csupを使うかわりに,portsnapを使ってportsツリーを更新することにしました.
手順は以下の通りです.「BSD にくびったけ - portsnap」にすばらしい解説記事があるので,ここを参考に作業しました.ほとんどこの記事の通りです.
手順
使い始める時にやること
(1) とりあえずportsnap fetch
% sudo portsnap fetch
(2) 次にportsnap extract
% sudo portsnap extract
(3) 最後にportsnap update
% sudo portsnap update
(4) 更新されたportsパッケージを確認
% sudo portversion -vL=
(5) 必要に応じてアップデート
とりあえず全部更新な場合は次のような感じで.
% sudo portupgrade -aRP
2回目以降にやる事
(1) portsnap fetch && portsnap update
% sudo portsnap fetch && sudo portsnap update
portsパッケージの確認や更新は同じ.
/etc/crontabに自動更新を仕込む
いちいち自分でportupgradeするのもだるい.というか,このくらい自動でアップデートして頂きたい.こんな事を毎回手動でやっていたらIT土方そのものである.そんなわけで.スクリプトを書いてcrontabに仕込むことにした.
まず,次のようなスクリプトを書いて/usr/local/sbinあたりに放り込んでchmod 755する.
- /usr/local/sbin/update-ports-cron.sh
#!/bin/sh # $Id: update-ports-cron.sh 204 2008-06-15 11:30:39Z genta $ ( /usr/sbin/portsnap fetch && /usr/sbin/portsnap update ) 2>&1 >/dev/null /usr/local/sbin/pkgdb -F echo "---- portversion:" /usr/local/sbin/portversion -vL= echo echo "---- portupgrade:" /usr/local/sbin/portupgrade -aRP --batch echo echo -n "Finished at: " LANG=C date
次に,/etc/crontabに以下の行を追加.
0 5 * * * root /usr/local/sbin/update-ports-cron.sh
これでうまく行くんじゃないだろうか.いくといいな.