ソースを更新する
バイナリーアップグレードではソースを必要としませんが、 アップグレード後の色々な作業の都合で、事前にソースを更新しておきます。 ここでは、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_3 -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_3 -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_3 -Pd
バイナリーアップグレードを行う
- マシンを停止(halt)します。
- セキュリティ上の問題が発生する可能性を考慮し、外部ネットワークとの接続を切り離します。
- OpenBSD 3.3 CD-ROM の CD1 を使って起動します。
-
ブートに成功すると、以下の質問で止まるので、
u を入力してアップグレードを選びます。
・・・ (I)nstall, (U)pgrade or (S)hell? u〈Enter〉 -
各種の質問に答えながら、アップグレードの準備を進めます。
Welcome to the OpenBSD/i386 3.3 upgrade program. ・・・ Terminal type? [vt220] 〈Enter〉 Do you wish to select a keyboard encoding table? [n] 〈Enter〉 ・・・ Proceed with upgrade? [n] y〈Enter〉 Cool! Let's get to it... Available disks are: wd0. Which one is the root disk? (or 'done') [wd0] 〈Enter〉 Root filesystem? [wd0a] 〈Enter〉 Checking root filesystem (fsck -fp /dev/wd0a) ... OK. Mounting root filesystem ... Done. Enable network using configuration stored on root filesystem? [y] 〈Enter〉 ・・・ Do you want to do any manual network configuration? [n] 〈Enter〉 ・・・ You can edit the fstab now, before it is used, but the edited fstab will only be used during the upgrade. It will not be copied back to disk. Edit fstab with ed? [n] 〈Enter〉 ・・・この後、ルート以外のパーティションを対象にして fsck が走るので、 ディスクの大きさによっては、とても時間が掛かります。 その場合、fstab を編集して不要なパーティション(/home 等)をマウントしないようにすれば、 時間を節約できるでしょう。 -
インストール元を指定し、何をインストールするかを選択して、
アップグレードを実行します。
Sets can be located on a (m)ounted filesystem; a (c)drom, (d)isk or (t)ape device; or a (f)tp, (n)fs or (h)ttp server. Where are the upgrade sets? (or 'done') c〈Enter〉 Available CD-ROMs are: cd0. Which one contains the upgrade media? (or 'done') [cd0] 〈Enter〉 Pathname to the sets? (or 'done') [3.3/i386] 〈Enter〉 The following sets are available. Enter a filename, 'all' to select all the sets, or 'done'. You may de-select a set by prepending a '-' to its name. [X] bsd [ ] bsd.rd [X] base33.tgz [X] etc33.tgz [X] misc33.tgz [X] comp33.tgz [X] man33.tgz [X] game33.tgz [ ] xbase33.tgz [ ] xshare33.tgz [ ] xfont33.tgz [ ] xserv33.tgz File name? (or 'done') [bsd.rd] all〈Enter〉 ・・・ File name? (or 'done') [done] 〈Enter〉 Ready to upgrade sets? [y] 〈Enter〉 ・・・ -
あと少しの質問に答えて、アップグレードを完了させます。
Sets can be located on a (m)ounted filesystem; a (c)drom, (d)isk or (t)ape device; or a (f)tp, (n)fs or (h)ttp server. Where are the upgrade sets? (or 'done') done〈Enter〉 What timezone are you in? ('?' for list) [Japan] 〈Enter〉 Setting local timezone to 'Japan'...done. ・・・ CONGRATULATIONS! Your OpenBSD upgrade has been successfully completed! To boot the new system, enter halt at the command prompt. Once the system has halted, reset the machine and boot from the disk. # halt〈Enter〉 syncing disks... done The operating system has halted. Please press any key to reboot. - CD-ROM を取り出し、何かキーを押してリブートします。
設定ファイル等を更新する
-
以下のグループIDを追加します。
_lkm:*:61: _spamd:*:62: _radius:*:63: _token:*:64: _shadow:*:65:
-
以下のユーザIDを追加します。
_spamd:*:62:62::0:0:Spam daemon:/var/empty:/sbin/nologin
-
幾つかのファイルのグループとパーミッションを変更します。
なお、必ずしも全てのファイルが存在するわけではないので、
ファイル無しのエラーは無視します。
# chgrp _lkm /dev/lkm # chgrp _radius /etc/raddb /etc/raddb/servers # chmod g+x /etc/raddb # chmod g+r /etc/raddb/servers # chgrp _token /etc/activ.db /etc/crypto.db /etc/snk.db # chmod 0640 /etc/activ.db /etc/crypto.db /etc/snk.db # chgrp _shadow /etc/spwd.db # chmod 0640 /etc/spwd.db
-
at が cron に統合されたのに伴い、管理ファイルを変更します。
なお、allow と deny ファイルは必ずしも存在するわけではないので、
ファイル無しのエラーは無視します。
しかし、crontab を root 以外の一般ユーザーに許可する/しないを制御するものなので、
man crontab を参考にして、適切な設定をするようにしましょう。
これは、at.allow, at.deny も同様です。
# mv /var/at/* /var/cron # rmdir /var/at # mv /var/cron/jobs/* /var/cron/atjobs # rmdir /var/cron/jobs # mv /var/cron/allow /var/cron/cron.allow # mv /var/cron/deny /var/cron/cron.deny # kill `cat /var/run/cron.pid` # /usr/sbin/cron
-
/etc/pf.conf の仕様の一部が変更されたので、シンタックスエラーが発生するならば、
man pf.conf および
PF: OpenBSDパケットフィルタ
を参考にして、修正します。
当方で確認した限りでは、
"flags S" というパラメタは "flags S/SAFR" などに変える必要がありました。
なお、PFは、3.3版になって、かなり機能拡張されたようなので、 新しい機能を使用するように、設定全体を見直したほうが良いように思います。 -
以下の手順で 3.3版の各種設定ファイルをワーク領域にインストールします。
# mkdir /root/newroot # cd /usr/src/etc # make DESTDIR=/root/newroot distribution-etc-root-var
-
named が bind4 から bind9 になったのに伴い、named の設定ファイルを変更します。
当方では、/var/named を /var/named.old にリネームし、 /root/newroot/var/named を /var/named に cp -rp でコピーした後、 /var/named/etc/named.conf は /var/named.old/named.boot を参考にしつつ新規作成し、 ゾーン情報のファイルは /var/named.old の配下からコピーしました。 -
その他の /etc 配下のファイルについて、
ワーク領域(/root/newroot)にインストールしたものと比較するなどした上で、
必要に応じて更新します。
当方の環境では以下のファイルを更新しました。 参考にしてください。
新ファイルを参考にして変更したもの:/etc/ftpusers /etc/inetd.conf /etc/mail/aliases /etc/newsyslog.conf /etc/rc.conf
新ファイルで置き換えたもの:/etc/afs/afsd.conf /etc/changelist /etc/daily /etc/kerberosIV/krb.extra /etc/ksh.kshrc /etc/locate.rc /etc/mrouted.conf /etc/mtree/4.4BSD.dist /etc/mtree/special /etc/netstart /etc/protocols /etc/rc /etc/remote /etc/security /etc/services /etc/spamd.conf /etc/systrace/usr_sbin_lpd /etc/systrace/usr_sbin_named /etc/weekly
- reboot します。 新しい設定ファイルに基づき起動するので、その動作を確認します。
その他の作業
-
必要に応じて、カーネルを再コンパイルしておきます。
→ カーネルをカスタマイズする -
必要に応じて、ユーザーランドを再コンパイルしておきます。
→ ソースを更新し、再コンパイルする - Perlのバージョンが 5.8.0 になりました。 XSモジュールのAPIが変更されたため、 全てのXSモジュールは再コンパイル、再インストールが必要です。
- XFree86 は新くなっていませんが(4.2.1のまま)、 ProPoliceスタック保護拡張機能を有効にするには再コンパイルが必要です。 再コンパイル、再インストールしておきましょう。
- portsで、および、その他の方法でインストールしたプログラムも、 ProPoliceスタック保護拡張機能を有効にするには再コンパイルが必要です。 再コンパイル、再インストールしておきましょう。