安定版 NetBSD リリースの更新
- -current を追跡する
- ソースを更新する
- 必要なツールを構築する
- 新しいカーネルを構築する
- ユーザーランドをあらたに構築する
- 構築したカーネルとユーザーランドをインストールする
- ソースツリーの一部だけを更新する
- 更新手順の簡潔なまとめ
-current を追跡する (トップ)
NetBSD-current の追跡方法についての資料は、 この文書をご覧ください。
ソースを更新する (トップ)
安定版 ( NetBSD 3.1 など) の NetBSD リリースを、本番環境として使っている場合、 そのリリース向けのセキュリティー上の修正を取り込むために、 時々ソースを更新のうえシステムまたはカーネルを再構築すべきです。
以下に示す各手順のほとんどは、一般ユーザーの権限でおこなうことができます。
新しいカーネルとユーザーランドのインストールのみ、
root 権限が必要です。
以下の例示では、作業ディレクトリーとして /usr
を使っていますが、ユーザーのホームディレクトリー以下で作業をおこなうことができます。
通常、一般ユーザーは /usr
以下への書き込み権限を持っていませんが、
これは root が変更することができます。
リリース版のソースの再現や更新は、適切な枝タグを指定して、 anoncvs オーバー ssh を使っておこなうことができます。 たとえば、 NetBSD 3.1 リリースのソースをチェックアウトするためには、 以下のようにします:
$ cd /usr $ export CVS_RSH=ssh $ cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot co -r netbsd-3-1 -P src
Note
間違ってソースツリーをダウングレードすることのないよう、 適切な意図通りの枝タグを選ぶように気を付けてください。既存のソースツリーを更新するには以下のようにします:
$ cd /usr/src $ export CVS_RSH=ssh $ cvs update -dP
必要なツールを構築する (トップ)
次にすることは、toolchain の構築です。
あらかじめ obj/
および tools/
ディレクトリーを作成してから、build.sh を実行する必要があります。
$ mkdir /usr/obj /usr/tools $ cd /usr/src $ ./build.sh -O /usr/obj -T /usr/tools -U -u tools
新しいカーネルを構築する (トップ)
新しいカーネルを構築する方法は、 この文書 で説明している方法とほぼ同じです。
カーネルを構築する手順は、以下の通りです。
$ cd /usr/src $ ./build.sh -O ../obj -T ../tools kernel=<KERNEL>
ユーザーランドをあらたに構築する (トップ)
かならず
build.sh -h
の説明を見て、詳細は
UPDATING
と
BUILDING
ファイルで確認するようにしてください─コマンドラインや
/etc/mk.conf
で指定できるオプションがたくさんあるので、
これは重要なことです。
ユーザーランドを構築するには、以下のようにします。
$ ./build.sh -O ../obj -T ../tools -U distribution
構築したカーネルとユーザーランドをインストールする (トップ)
構築した新しいカーネルをインストールし、(新しいカーネルが動作することを確認するため) リブートし、新しいユーザーランドをインストールすることが、 安定版 NetBSD の更新手順の最後の作業です。以下のようにします。
$ cd /usr/src $ su # mv /netbsd /netbsd.old # mv /usr/obj/sys/arch/<ARCH>/compile/<KERNEL>/netbsd / # shutdown -r now ... $ cd /usr/src $ su # ./build.sh -O ../obj -T ../tools -U install=/
新しいカーネル netbsd
がうまくブートしなかった場合は、
netbsd.old
カーネルをブートして、
以前の状態に戻すことができます。
ソースツリーの一部だけを更新する (トップ)
セキュリティー勧告が発行され、 再構築が必要となったライブラリーやアプリケーションだけを構築したい場合、 最善の選択は、勧告に書かれた説明どおりにすることです。 一例としては以下のようになります:
$ cd src $ export CVS_RSH=ssh cvs update -d -P -r netbsd-3-1 gnu/dist/sendmail/sendmail $ cd gnu/usr.sbin/sendmail $ make USETOOLS=no cleandir dependall $ su # make USETOOLS=no install
更新手順の簡潔なまとめ (トップ)
-
ソースの更新:
$ cd /usr/src $ export CVS_RSH=ssh $ cvs update -dP
-
カーネルとユーザーランドの再構築:
$ cd /usr/src $ ./build.sh -O ../obj -T ../tools tools $ ./build.sh -O ../obj -T ../tools kernel=<KERNEL> $ ./build.sh -O ../obj -T ../tools -U distribution
-
Installing the new kernel and userland:
$ su # mv /netbsd /netbsd.old # mv /usr/obj/sys/arch/<ARCH>/compile/<KERNEL>/netbsd / # shutdown -r now ... $ cd /usr/src $ su # ./build.sh -O ../obj -T ../tools -U install=/