Skip to content

Plan 9環境の再構築

ファイルを更新するとき sys グループに参加が必須なので、作業アカウントを追加する。upas も必要だが2ファイルしかないので、権限を与えなくても回避は可能。

Terminal window
% con -l /srv/fscons
main: uname sys +bootes

Ctrl+\を入力してコンソールを抜ける。

Terminal window
main: (ctl+\)
>>> q

基本的には mk コマンドを実行していくだけで終わるが、一部のファイルを更新するときに書き込みエラーが発生する場合があるので、回避策を実行しておく。

Terminal window
# 異なるアーキテクチャのバイナリが必要なら設定する
objtype=386
# bootes等は/tmpに書き込み権限を持たないので実行する
ramfs
# 上と同様にbootesがupasグループに参加していない場合は実行しておく
cp /mail/lib/gone.finished /tmp
cp /mail/lib/gone.msg /tmp
bind -b /tmp /mail/lib

まずはライブラリやコマンドを更新する。たぶん最小は以下のコマンドを使えばいい。

Terminal window
cd /sys/src
mk release
mk clean

しかし上記の場合、mk nuke すると /$objtype に配置されたライブラリ類も消えてしまって困るが mk clean では y.tab.h 等の中間ファイルが残ってしまう。なので丁寧にやるなら以下が良いだろう。このとき mk の引数を並べるとコマンドライン引数だと扱われる箇所があってうまくいかないので、必ず mk を分けて実行する。

Terminal window
cd /sys/src
objtype=386
mk libs # 各libでinstallとcleanを実行するのでcleanlibsは不要
cd /sys/src/ape
mk lib.install
mk lib.clean
mk cmd.install
mk cmd.nuke
mk 9src.install
mk 9src.nuke
cd /sys/src/cmd
mk install # safeinstallの方が良いかも?
mk nuke
cd /sys/src/games
mk install
mk nuke
cd /acme
mk install
mk nuke

次にカーネルをビルドする。

Terminal window
cd /sys/src/9/pc
mk install 'CONF=pcf'
mk nuke 'CONF=pcf'
cd /sys/src/9k/k10
mk install 'CONF=k10'
mk nuke 'CONF=k10'
cd /sys/src/9/pcboot
# boot設定を編集してサイズを小さくしておく
mk install clean