unix/Step by step/システム再構築
2018-04-16 (月) 15:53:00 (1577d)
システム再構築のタイミング †
- 最初にソースをダウンロードし,アップデートの準備を行った時
- セキュリティバージョンアップを行った場合
- 5.0 から 5.0.1
- マイナーバージョンアップを行った場合
- 5.0 から 5.1
- メジャーバージョンアップを行った場合
- 5.0 から 6.0
ソースの取得 †
環境設定 †
- C-Shell系(/root/.cshrc)
- setenv CVS_RSH ssh
- setenv CVSROOT anoncvs@anoncvs.NetBSD.org:/cvsroot
- Bourne shell系(/root/.profile)
- export CVS_RSH="ssh"
- export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"
カーネルソースの取得 †
- cd /usr (sourceは/usr以下に置いておく)
- cvs checkout -r netbsd-5 -P src
- stable版の入手(推奨)
- checkoutの時間を計測するためには以下のようにする
- time cvs checkout -r netbsd-5 -P src
- 各PCのベンチマークとして使用したりする
- stable版の入手(推奨)
- (cvs checkout -A -P src)
- current版を入手する場合
- (cvs checkout -r <BRANCH> -P src)
- RELEASE版の入手
- RELEASEの例:4.0
- <BRANCH>:netbsd-4-0-RELEASE
- RELEASEの例:3.0.2
- <BRANCH>:netbsd-3-0-2-RELEASE
Xのソースの取得 †
- cd /usr(sourceは/usr以下に置いておく)
- cvs checkout -r netbsd-5 -P xsrc
- stable版の入手(推奨)
- checkoutの時間を計測するためには以下のようにする
- time cvs checkout -r netbsd-5 -P xsrc
- 各PCのベンチマークとして使用したりする
- stable版の入手(推奨)
- (cvs checkout -A -P xsrc)
- current版を入手する場合
- (cvs checkout -r <BRANCH> -P xsrc)
- RELEASE版の入手
- RELEASEの例:4.0
- <BRANCH>:netbsd-4-0-RELEASE
- RELEASEの例:3.0.2
- <BRANCH>:netbsd-3-0-2-RELEASE
ソースのアップデート †
カーネルソースのアップデート †
- cd /usr/src
- cvs update -Pd
Xのアップデート †
- cd /usr/xsrc
- cvs update -Pd
システムの再構築 †
- http://www.netbsd.org/docs/updating.html
- 以下は旧情報か?
- mv /etc/mk.conf /etc/mk.conf.pkgsrc
- pkgsrcでmk.confを使用している場合,名前を変更(ここでもmk.confを使用しようとするから)
- cd /usr/src
- ./build.sh -O ../obj -T ../tools -U -u distribution
- ユーザランドの構築
- ./build.sh distributionの時間を計測するためには以下のようにする
- time ./build.sh -O ../obj -T ../tools -U -u distribution
- 各PCのベンチマークとして使用したりする
- ユーザランドの構築
- ./build.sh -O ../obj -T ../tools -U -u kernel=GENERIC
- カーネルの構築
- ./build.sh kernelの時間を計測するためには以下のようにする
- time ./build.sh -O ../obj -T ../tools -U -u kernel=GENERIC
- 各PCのベンチマークとして使用したりする
- カーネルの構築
- GENERICは自分のカーネル定義ファイルを使用
- ここを参考に,自分用のカーネル定義ファイルMYKERNELを作成すると,一度にシステムアップデートとカーネルアップデートが出来てお得
- cd ../obj/sys/arch/<ARCH>/compile/GENERIC
- su
- mv /netbsd /netbsd.old
- netbsd.old日付-番号などとした方が分かりやすいかも
- 例:netbsd.old20090620-01(2009年6月20日につくった1個目のバックアップ)
- 新しいカーネルが安定動作したなら将来的には古い(old)カーネルは削除
- netbsd.old日付-番号などとした方が分かりやすいかも
- cp netbsd /netbsd
- shutdown -r now
- カーネルのインストール
- <ARCH>は自分のPCのアーキテクチャ
- i386, amd64, etc
- 再起動時に問題が起こったら古いカーネルで起動して修正
- boot netbsd.old -s
- fsck /
- mount /
- mv netbsd.old netbsd
- reboot
- cd /usr/src
- su
- ./build.sh -O ../obj -T ../tools -U install=/
- ユーザランドのインストール
- /usr/sbin/etcupdate -s /usr/src
- システムの設定ファイル(/etc)のアップデート
- 1ファイルごとにアップデート確認が行われる
- 基本は,i(新しいファイルで上書き)とd(古いファイルを使用)
- 全てiにした場合は,これまでに設定したもの(rc.confからifconfigなどネットワークの設定まで)ほとんど全てが初期設定に戻ってしまうので再設定が必要.
- できれば,メッセージを読み,分からないものはiで,自分で設定した記憶があり再設定の必要がないものをdとするように.
- アップデート確認でm(マージ)をした場合には,特殊エディタ(?)が立ち上がり,違いを{新|旧|それぞれを元に自分で編集}を選択できる.使えるコマンドはpとでも打つとでる.
- 事前に差分を見たい場合は,etcupdate -al?
- http://www.area51.gr.jp/~rin/pcmemo/NetBSDkernelmake
- /usr/sbin/postinstall -s /usr/src -d / fix ****
- etcupdateをすると最後にエラーメッセージがでて,postinstallを実行するようにと出てくる.その時のメッセージを読んで,****は,fixしてもらいたいものを書いて実行
- /usr/sbin/postinstall list とやると一覧が出てくる?
- システムの設定ファイル(/etc)のアップデート
- mv /etc/mk.conf.pkgsrc /etc/mk.conf
- pkgsrcでmk.confを使用している場合,変更した名前を元にもどしておく
- システムアップデートに関する参考文献
- 説明書のchapter32
- http://www.jp.netbsd.org/ja/docs/updating.html
その他情報 †
バージョンの概要 †
- current
- 現在開発中のバージョン.
- maintenance branches, stable branch, etc.
- 最新の安定版
- formal releases, release, etc.
- release版として名づけられた版.過去の色々なバージョン.
- 詳しい説明
アップデート等に関する情報 †
- build.sh -h
- UPDATING ファイル
- BUILDING ファイル