3.5版から 3.6版へアップグレードする
-
ソースの更新に、Anonymous CVS
を使うため、インターネットへの接続できる環境を整えます。
-
/usr/src 配下を更新するため、以下のようなスクリプトを実行します。
#!/bin/sh -e
CVSROOT=anoncvs@anoncvs.jp.openbsd.org:/cvs
CVS_RSH=/usr/bin/ssh
export CVSROOT CVS_RSH
cd /usr/src
cvs -d $CVSROOT -q up -rOPENBSD_3_6 -Pd
-
必要であれば、XFree86 を更新するため、以下のようなスクリプトを実行します。
#!/bin/sh -e
CVSROOT=anoncvs@anoncvs.jp.openbsd.org:/cvs
CVS_RSH=/usr/bin/ssh
export CVSROOT CVS_RSH
cd /usr/XF4
cvs -d $CVSROOT -q up -rOPENBSD_3_6 -Pd
-
必要であれば、ports を更新するため、以下のようなスクリプトを実行します。
#!/bin/sh -e
CVSROOT=anoncvs@anoncvs.jp.openbsd.org:/cvs
CVS_RSH=/usr/bin/ssh
export CVSROOT CVS_RSH
cd /usr/ports
cvs -d $CVSROOT -q up -rOPENBSD_3_6 -Pd
-
以下のグループIDを追加します。
セキュリティ向上のための権限分離で使われるものです。
_dhcp:*:77:
_mopd:*:78:
_tftpd:*:79:
_rbootd:*:80:
_afs:*:81:
_ppp:*:82:
_ntp:*:83:
-
以下のユーザIDを追加します。
セキュリティ向上のための権限分離で使われるものです。
_dhcp:*:77:77::0:0:DHCP programs:/var/empty:/sbin/nologin
_mopd:*:78:78::0:0:MOP Daemon:/var/empty:/sbin/nologin
_tftpd:*:79:79::0:0:TFTP Daemon:/var/empty:/sbin/nologin
_rbootd:*:80:80::0:0:rbootd Daemon:/var/empty:/sbin/nologin
_afs:*:81:81::0:0:afs Daemon:/var/empty:/sbin/nologin
_ppp:*:82:82::0:0:PPP utilities:/var/empty:/sbin/nologin
_ntp:*:83:83::0:0:NTP Daemon:/var/empty:/sbin/nologin
-
必要とされるディレクトリを全て生成します。
# cd /usr/src/etc
# make DESTDIR=/ distrib-dirs
-
カーネルをカスタマイズしていた場合には、
カーネルオプションの内容が以前と変わっている可能性があるので、
新旧の GENERIC を比較する などして違いを調べ、
必要に応じて、カーネル定義ファイルを変更します。
少なくとも、cpu0 の定義の追加と、bios0 の定義の変更が必要なようです。
-
カーネルをコンパイルします。
カスタマイズしたカーネルのコンパイルは、以下の GENERIC の部分を差し替えて実行します。
なお、トラブル時に GENERIC 版も必要になるかもしれないので、
両方を作っておくのが良いでしょう。
# cd /usr/src/sys/arch/i386/conf
# /usr/sbin/config GENERIC
# cd /usr/src/sys/arch/i386/compile/GENERIC
# make clean && make depend && make
# chmod -x bsd
# cp bsd /bsd36
# mv /bsd /bsd.old && ln /bsd36 /bsd
-
pty デバイスのマイナー番号が変更されたので、デバイスを作り直します。
# cp /usr/src/etc/etc.i386/MAKEDEV /dev
# cd /dev
# ./MAKEDEV pty0
-
新しいカーネルでリブートします。
# reboot
-
最初に新しいヘッダファイルをインストールします。
# cd /usr/src
# make obj && make cleandir && make includes
-
新しいヴァージョンのlibcをコンパイルしてインストールします。
# cd /usr/src/lib/libc
# make depend && make && env NOMAN=1 make install
-
ユーザーランドを全コンパイルします。
# cd /usr/src
# make build
これにはかなり時間が掛かります。
-
以下の手順で、ワーク領域に 3.6版のファイルをインストールし、
現在のファイルとそれとを比較し、必要であれば更新します。
# mkdir /tmp/newroot
# cd /usr/src/etc
# make DESTDIR=/tmp/newroot distribution-etc-root-var
なお、当方の環境では以下のファイルを更新しました。
参考にしてください。
新ファイルを参考にして変更、または、新規作成したもの:
/etc/ftpusers
/etc/inetd.conf
/etc/login.conf
/etc/mail/*
/etc/pf.conf
/etc/rc.conf
/etc/rc.local
/etc/sysctl.conf
新ファイルで置換、または、コピーしたもの:
/etc/bgpd.conf
/etc/changelist
/etc/lynx.conf
/etc/mtree/4.4BSD.dist
/etc/mtree/special
/etc/netstart
/etc/ntpd.conf
/etc/pf.os
/etc/protocols
/etc/rc
/etc/rc.securelevel
/etc/security
/etc/services
/etc/ssh/sshd_config
/etc/systrace/usr_sbin_lpd
/etc/systrace/usr_sbin_named
/etc/ttys
-
cksum と sum コマンドの場所が変わったので、
古い場所に残されている古いバイナリーを削除しておきます。
# rm -f /usr/bin/cksum /usr/bin/sum
-
念のため、/dev 配下のデバイスファイルを再作成しておきます。
# mkdir /dev.new
# cd /dev.new
# cp /usr/src/etc/etc.i386/MAKEDEV .
# ./MAKEDEV all
# cd ..
# mv dev dev.old && mv dev.new dev
-
リブートします。
新しい設定ファイルに従って起動するので、その動作を確認します。
# reboot
-
リブート後、古いデバイスファイルは削除しておきます。
# rm -rf /dev.old
-
XFree86 はバージョン番号は同じ(4.4)でも新くなっているので、
使用しているのなら、コンパイル&インストールします。
-
ports で提供されているプログラムも、新くなっているものがあるので、
必要に応じて、インストールし直します。