2.9版から 3.0版へアップグレードする
ここでは OS の版数を2.9版から 3.0版へアップグレードする手順を紹介します。
基本的には、同じ版の中で修正パッチを適用するのと同じですが、
機能の追加/変更/削除もあるので、その対応が必要になります。
なお、これはアップグレードの手順の一例にすぎません。
CD-ROM を使ったアップグレードも可能なはずですが、当方の環境では、
最初のインストールの直後に CD-ROM ドライブを外してしまったため、試していません。
参考:
OpenBSD FAQ: Upgrading OpenBSD
(日本語訳)
-
ソースの更新に、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_0 -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_0 -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_0 -Pd
-
以下のユーザIDを追加します。
smmsp:*:25:25::0:0:Sendmail Message Submission Program:/nonexistent:/sbin/nologin
popa3d:*:26:26::0:0:POP3 server:/var/empty:/sbin/nologin
proxy:*:71:71::0:0:Proxy Services:/nonexistent:/sbin/nologin
-
以下のグループIDを追加します。
smmsp:*:25:
popa3d:*:26:
proxy:*:71:
-
パケットフィルタを使用していた場合には、新しい定義ファイルを準備します。
定義ファイルが ipf.rules から pf.conf に変わりましたが、
一部を除いて書式は変わっていないようです。
コピーして確認/変更するのが良いでしょう。
新しい書式の説明は、
man pf.conf
にあります。
-
NAT を使用していた場合には、新しい定義ファイルを準備します。
定義ファイルが ipnat.rules から nat.conf に変わり、
書式もかなり違っています。
コピーして変更するのが良いでしょう。
新しい書式の説明は、
man nat.conf
にあります。
-
必要とされるディレクトリを全て生成します。
# cd /usr/src/etc
# make DESTDIR=/ distrib-dirs
-
カーネルをカスタマイズしていた場合には、
カーネルオプションの内容が以前と変わっている可能性があるので、
新旧の GENERIC を比較するなどして違いを調べ、
必要に応じて、カーネル定義ファイルを変更します。
-
カーネルをコンパイルします。
カスタマイズしたカーネルのコンパイルは、以下の 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
-
新しいカーネルでは、IP Packet Filter が動作しなくなります。
使用していた場合は、/etc/rc.conf を変更して、起動しないようにします。
また、フィルタリングが行われなくなり、セキュリティ上の問題があるので、
ネットワークとの接続を切り離しておきます。
-
カーネルを置き換え、リブートします。
# chmod -x bsd
# cp bsd /bsd30
# mv /bsd /bsd.old; ln /bsd30 /bsd
# reboot
-
make コマンドが変わったので、
最初に、そこだけコンパイルとインストールを行います。
# cd /usr/src/share/mk
# make install
# cd /usr/src/usr.bin/make
# make clean && make obj && make depend && make
# make install
-
KerberosV をコンパイルします。
これを先にしておかないと、全コンパイルが途中で失敗します。
# cd /usr/src/kerberosV
# make obj
# cd lib/roken
# make
# cd ../../usr.bin/asn1_compile
# make
# make install
-
OS を全コンパイルします。
# cd /usr/src
# rm -rf /usr/obj/*
# make obj && make build
-
/etc と /dev 配下の各ファイルにも変更が必要です。
以下の手順で、ワーク領域に 3.0版のファイルをインストールし、
現在のファイルとそれとを比較し、必要であれば更新します。
また、不要になったファイルは削除します。
# mkdir /tmp/newroot
# cd /usr/src/etc
# make DESTDIR=/tmp/newroot distribution-etc-root-var
なお、当方の環境では以下のファイルを更新しました。
参考にしてください。
新ファイルを参考にして変更したもの:
/etc/inetd.conf
/etc/newsyslog.conf
/etc/rc.conf
/etc/rc.local
/etc/sysctl.conf
/etc/syslog.conf
新ファイルで置き換えたもの:
/etc/afs/
/etc/changelist
/etc/daily
/etc/kerberosIV/README
/etc/kerberosIV/krb.equiv
/etc/kerberosIV/krb.extra
/etc/kerberosV/README
/etc/kerberosV/krb5.conf.example
/etc/ksh.kshrc
/etc/login.conf
/etc/mail/
/etc/moduli (旧名称は /etc/primes)
/etc/mtree/
/etc/netstart
/etc/ppp/ppp.conf.sample
/etc/rc
/etc/remote
/etc/security
/etc/services
/etc/sshd_config
/etc/sudoers
/etc/weekly
/etc/wsconsctl.conf
/dev/MAKEDEV
不要になったので削除したもの:
/etc/ipf.rules
/etc/ipnat.rules
-
/dev 配下のデバイスファイルも追加/削除が必要です。
以下の手順により、デバイスファイルを生成し直します。
cd /dev
./MAKEDEV all
削除は手動で行う必要があります。 当方の環境では、以下を削除しました。
/dev/audio
/dev/audioctl
/dev/ipauth
/dev/ipl
/dev/ipnat
/dev/ipstate
/dev/mixer
/dev/music
/dev/sequencer
/dev/sound
-
sendmail のバージョンが変わりました。
セキュリティが強化されたため、設定を変更する必要があります。
手順は、
New sendmail version
(日本語訳)
を参考にしてください。
-
reboot します。
新しい /etc/* ファイルの設定に基づき起動するので、その動作を確認します。
新しいパケットフィルタの動作状況は、pfctl -s info などにより確認できます。
-
XFree86 も新くなっている(4.1.0)ので、
使用しているのなら、コンパイル、インストールします。
-
ports で提供されているプログラムも、新くなっているものがあるので、
必要に応じて、インストールし直します。