Introduction
|
|
CVSup により最新版に更新したソースを使用して、
最新版の実行環境を再構築する。
FreeBSD ではそのために make world と呼ばれる仕組みが提供されているので、
それほど面倒な作業ではないが、
手順を間違えると二度と起動しなくなる可能性もあるので十分に注意して作業する。
|
Backup
|
|
重要なファイルのバックアップを行う
基本的には /etc を全てバックアップすれば問題ない。
tar コマンドでアーカイブしても良いが、
いざと言うときにすぐ使えるように任意のディレクトリにそのままコピーする。
|
Prepare
|
|
まずは情報の収集。
/usr/src/UPDATING は重要な情報が書かれているので熟読する。
勿論英語で書かれているが、それほど難しくない英語なので何とか読む。
他には FreeBSD ハンドブックも貴重な情報源となる。
インストールするディストリビューションにもよるが、
/usr/share/doc/ja/books/handbook/index.html に
FreeBSD ハンドブックがあるのでこれも熟読する。
次は /etc/make.conf の編集。
通常は以下の設定だけで十分だが、
/usr/src/UPDATING に特記されている事があれば勿論追加する。
CFLAGS=-O -pipe
|
コンパイル時に最適化を行い pipe を使用する事で高速化する
|
NOPROFILE=true
|
gprof (1) によるプロファイリング取得を行わない
|
|
Buildworld
|
|
ベースシステムを構築する。
カーネルこ構築する時に必要な /usr/sbin/config コマンドをはじめ、
FreeBSD で使用されるほぼ全てのコマンドが /usr/obj 以下のディレクトリに
再構築される。
存在するならば /usr/obj ディレクトリ以下を全て削除し、
make buildworld を実行する。
環境に依存するが大体2〜3時間で make buildworld は終了する。
# cd /usr/obj
# chflags -R noschg *
# rm -rf *
# cd /usr/src
# make -j 4 buildworld
|
|
Kernel
|
|
新しいカーネルを構築する
カーネルの構築は基本的に通常の方法と同様。
コンフィグレーションファイルは通常通り GENERIC を元に編集すれば良い。
ただし、make コマンドは /usr/src で実行することにより、
Buildworld で作成した config コマンドを使用する必要がある。
カーネルが構築できたら同様にインストールを行う。
この時も make コマンドは /usr/src で実行する必要がある。
# cd /usr/src
# … コンフィグレーションファイルの編集
# make buildkernel
KERNCONF=コンフィグレーションファイル名
# make installkernel
KERNCONF=コンフィグレーションファイル名
|
|
Install
|
|
ベースシステムをインストールする。
ベースシステムをインストールする前にリブートし、新しいカーネルで起動する。
この時に、シングルユーザモードで起動し、以下の作業は安全のため全て
シングルユーザモードで実行する。
シングルユーザモードで起動したらベースシステムをインストールする。
ベースシステムのインストールは make installworld コマンドで完了
# cd /usr/src
# mergemaster -p
# make installworld
|
|
mergemaster
|
|
ベースシステムのインストール後は環境の構築。
この手順が一番注意を要する。
mergemaster (8) というコマンドが提供されており、
多少は簡単に環境を移行できるが、それでも気を使う作業には変りない。
mergemaster は既存の設定ファイルと新規の設定ファイルを比較して
差分を表示し、設定ファイルの移行の補助をしてくれる。
mergemaster は2段階で実行すると楽で便利である。
# mergemaster -svia
# mergemaster -svir
|
最初の実行では既存ファイルが無い場合に自動で新規ファイルをインストールし、
次の実行で、実際に既存の設定ファイルと新規の設定ファイルの比較を行う。
mergemaster は cvs (1) のバージョン情報がある場合はそれを比較し、
バージョンが等しければ既存の設定ファイルを使用する。
バージョンがない場合やバージョンが違う場合は、設定ファイルそのものを比較し、
内容に差がある場合はプロンプトを表示する。
このプロンプトに対してlを入力すると既存のファイルを使用し、
r を入力すると新規ファイルを使用する。
m を入力すると行単位で自分でマージができる。
/etc 以下のファイルに対して行った修正は確実にメモする等、
後で自分が判る様にするのが大切である。
最後に通常通り再起動し終了。
|