CVSupを使ったFreeBSDのソース及びportsのアップデート方法を解説する。
1.cvsupを使ったアップデート
■ cvsupをportsから入れる
# cd /usr/ports/net/cvsup-without-gui/
# make install clean
■ csvupの設定ファイルをコピる
# mkdir /usr/local/etc/cvsup
# cp /usr/share/examples/cvsup/ports-supfile /usr/local/etc/cvsup/
# cp /usr/share/examples/cvsup/stable-supfile /usr/local/etc/cvsup/
■ ports コレクションの Makefile を最新にするためのファイルである同期するホスト名を変更する
# vi /usr/local/etc/cvsup/ports-supfile
*default host=cvsup.jp.freebsd.org ← ここを変更
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
ports-all
■ ソースツリーを最新の状態にするためのファイルである、ホスト名に加えてリリースバージョンを書き換える
# vi /usr/local/etc/cvsup/stable-supfile
*default host=cvsup.jp.freebsd.org ← ここを変更
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
*default compress
src-all
■ コンソール端末から cvsup を実行するため、GUI出力をキャンセルする -g オプションを使う
# /usr/local/bin/cvsup -g -L 2 /usr/local/etc/cvsup/ports-supfile
# /usr/local/bin/cvsup -g -L 2 /usr/local/etc/cvsup/stable-supfile
■ make.confをつくる
# vi /etc/make.conf
NOGAMES=true
USA_RESIDENT=NO
SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS= -g -L 2
SUPHOST=cvsup.jp.freebsd.org
SUPFILE=/usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
FTP_PROXY=proxy:3128
HTTP_PROXY=proxy:3128
KERNCONF=MYKERNEL
■ 定期的に cvsup を実行する
# vi /etc/crontab
* 4 * * * root /usr/local/bin/cvsup -g -L 0 /usr/local/etc/ports-supfile > /dev/null
* 5 * * * root /usr/local/bin/cvsup -g -L 0 /usr/local/etc/stable-supfile > /dev/null
2.アップデートしたファイルのビルド
■ ソースのビルド
# cd /usr/src
# make -j4 buildworld
■ カーネルのビルド
カーネルのカスタマイズをしてる場合は、赤文字のオプションを追加する。
# cd /usr/src
# make -j4 buildkernel KERNEL=MYKERNEL
■ カーネルのインストール
カーネルのカスタマイズをしてる場合は、赤文字のオプションを追加する。
# cd /usr/src
# make installkernel KERNEL=MYKERNEL
■ モジュールのオールインストールシングルユーザモードで行う。
# reboot
“Hit [Enter] to boot immediately ~”と表示されている時にEnter以外のキーを押し、
boot -s
# fsck -p
# mount -u /
# mount -a -t ufs
# swapon -a
# cd /usr/src
# make installworld
# logout
3.その他のアップデート
1) etcディレクトリのメンテ
# cp -Rp /etc /etc.old
# /usr/sbin/mergemaster -svia
# /usr/sbin/mergemaster -svir
■ MAKEDEVが更新された場合
/dev/MAKEDEV が更新された場合、以下のように聞かれる。
*** You installed a new /dev/MAKEDEV script, so make sure that you run
‘cd /dev && /bin/sh MAKEDEV all’ to rebuild your devices
Would you like to run it now? y or n [n]
MAKEDEV all を実行してデバイスファイルを再作成するか? ということなので yを入力してデバイスファイルを再作成する。
■ aliases ファイルが更新された場合
/etc/mail/aliases が更新された場合、以下のように聞かれる。
*** You installed a new aliases file, so make sure that you run
‘/usr/bin/newaliases’ to rebuild your aliases database
Whold you like to run it now? y or n [n]
newaliases を実行してデータベースを更新するか? ということなので y を入力します。
■ login.conf が更新された場合
/etc/login.conf が更新された場合、以下のように聞かれる。
*** You installed a new login.conf file, so make sure that you run
‘/usr/bin/cap_mkdb /etc/login.conf’ to rebuild your login.conf database
Would you like to run it now? y or n [n]
ここでも y を入力します。
■ master.passwd が更新された場合
/etc/master.passwd が更新された場合、以下のように聞かれます。
*** You installed a new master.passwd file, so make sure that you run
‘/usr/sbin/pwd_mkdb -p /etc/master.passwd’
to rebuild your password files
Would you like tu run it now? y or n [n]
ここでも y を入力します。
2) /standのアップデート
# cd /usr/src/release/sysinstall
# make all install
# reboot
4.コンパイル環境の後始末(不要なファイルの掃除)
# cd /usr/obj
# chflags -R noschg *
# rm -rf *
以上
コメント