home FreeBSD Bike Misc Memorandum About

make world

最新のソースツリーを手に入れる

 何はともあれ、最新のソースツリーを手に入れなければなりません。cvsupで最新のソースにを参照してください。

/usr/src/UPDATINGを読む

 直近のReleaseからのコミットの際にシステムを作りなおすときの注意点などがまとめられています。必ず読むようにしてください。英語ですが、簡単な文なので読解するのは可能です。

/etc/make.confの確認・/etc/groupの確認

 多分しなくても良いですが、/etc/make.confにコンパイルの際のオプションを指定します。これは/etc/defaults/make.confをオーバーライド(上書き)します。

 また、新しく作り直すシステムが新しい機能の追加などによって新しいグループを必要とする場合があります。/usr/src/etc/groupと/etc/groupを比べてみて追加されたgroup、gidが同じにもかかわらず名前が変わっている場合はそれも変更しなければなりません。

 これもUPDATINGに記載されているようなケースなので、特にこのような情報がなければ大抵の場合省略可能なプロセスです。不安な時は確認してください。

/usr/objを削除する

以前にmake worldをしたことがあるのなら/usr/obj以下に残っています。無用なトラブルを防ぐために削除しておいたほうが良いでしょう。またフラグがたっていて、削除できないときがありますので、以下の手順を踏むとよいでしょう。

# cd /usr/obj
# chflags -R noschg *
# rm -rf *

Userlandを再構築する

 /usr/srcにおいて、make buildworldを実行します。この作業ではシングルユーザモードにする必要はありません。

# cd /usr/src
# make buildworld

 なお、ログを残したい場合(大体は残しておいたほうが良いと思います)、標準エラー出力を記録するかscriptコマンドを使用すると良いです。

# cd /usr/src
# script /tmp/mbw.log
Script started, output file is /tmp/mbw.log
# make buildworld

--------------------------------------------------------------
>>> Rebuilding the temporary build tree
--------------------------------------------------------------
rm -rf /usr/obj/usr/src/i386
SNIP!!SNIP!!
# exit
Script done, output file is /tmp/mbw.log

kernelの再構築

この作業もマルチユーザーモードで実行できます。KERNCONFオプションをつけない場合、GENERICのkernelが作られます。

# cd /usr/src
# make buildkernel KERNCONF=hogehoge

kernelのインストール

 シングルユーザーモードで実行します。OSがあがっているときはオプションなしでshutdownするとシングルユーザーモードになります。コンソールで作業をしてください。

# shutdown now
シングルユーザモード
# cd /usr/src
# make installkernel KERNCONF=hogehoge

Userlandのインストール

 今インストールしたkernelでシングルモードでOSを立ち上げます。boot -sでシングルユーザモードで起動できます。

# shutdown -r now
####PCの再起動
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 7 seconds... _
####この画面でEnter以外のキーを押すとコマンドプロンプトになるので、
boot -s を押すとシングルユーザモードで起動します。

起動すると、/以外はマウントされていないので、ファイルシステムをマウントします。

# mount -a

installworldを実行します。

# cd /usr/src
# make installworld

 mergemasterを実行し、/etcのmerge、/devの再構築などをします。 なお、mergemaster は passwd ファイルや groupファイルなども書き換えるコマンドなので、間違えるとシステムを再起不能に陥れる可能性があります。慣れないときは必ず事前に /etc の下をバックアップしてから実行するようにしましょう。

# mergemaster

再起動します。

# shutdown -r now

これで最新のFreeBSDで起動します。お疲れ様でした。

説明

FreeBSD4.6.2-Release

 make worldとは、cvsupなどで手に入れた、ある状態のソースツリー(通常/usr/srcに保存されています)をコンパイルして、FreeBSDのシステムをすべて作りなおすことです。

 Linuxなどとは違って、システムを作り直す、というのはすべてのuserland(コマンド群とライブラリ群など)とkernelをすべてコンパイルしなおします。Linuxは厳密にはカーネルのみを示すそうですね。

 この作業はcvsupで最新のソースにを終えた後にシステムを最新にするための仕上げの作業です。これで最新のFreeBSDにメンテするための一連の作業を覚えます。ぜひマスターしましょう。

 なお、FreeBSD Handbookのmake worldの章も確認してください。

2002/09/06

Creative Commons License
This work is licensed under a Creative Commons License.