2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

FreeBSD CVSupを使ったアップデート!


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 *

以上

コメント