Skip to main content.
Google custom search

安定版 NetBSD リリースの更新


-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 の説明を見て、詳細は UPDATINGBUILDING ファイルで確認するようにしてください─コマンドラインや /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=/