OpenBSDでは、現在、以下のようなアップデートツールが提供されている。
これらのツールのうち、sysupdateとsyspatchは河豚板では使用できない。
Vanilla OpenBSDとは、カーネルの設定とファイルシステムのレイアウトが異なるため。
sysmergeとpkg_addは河豚板でも問題なく使用することができる。
河豚板は、OpenBSDに追従して年に2回リリースを更新する。
また、その間にEratta対応(patch適用)や河豚板自身の機能追加・バグフィクスなどがあり、概ね十数回以上のアップデートを行っている。
LiveUSBに対して、このような修正を容易に行うため、FuguIta-6.7-*-202010071よりfiupdate (FuguIta Update)というツールを作成し、配布物に同梱している。
fiupdateは、LiveUSB中のカーネルとファイルシステム・イメージ全体を新しいもので置き換える。そのため、基本的には同一バージョンのOpenBSDがベースになっていれば、任意のリリースに更新することができる。ダウングレードも可能。
(OpenBSDのsyspatchは、step by stepで1つづつ新しいリリースに更新することが必須で、一足飛びに最新リリースに更新することはできない)
LiveDVDについてはコンテンツの上書きが物理的に不可能なため、従来どおり、メディアを最新版に作り直すこととなる。
配布サイトよりISOイメージファイルとMD5をダウンロードし、fiupdateを実行する。
# ftp https://jp1.dl.fuguita.org/FuguIta-6.9-amd64-202108131.iso.gz # ftp https://jp2.dl.fuguita.org/MD5 # fiupdate 202108131
ダウンロードするファイルはLiveUSB用の*.img.gzではなく、LiveDVD用の*.iso.gzファイルであることに注意。
fiupdate実行中は、以下のような処理が行われる
エラー検出
fiupdateの動作は、基本的には現行のカーネルとファイルシステム・イメージをダウンロードしたISOイメージの中のもので上書きするだけで、原理は非常に単純である。
ただし、ファイルの上書きが失敗することは致命的であるため、極力避けなければならない。そのため、fiupdateは、大部分が実行環境のチェックとエラーの検出・処理のためのコードとなっている。
ライブアップデートにした理由
アップデートの方法として、現在稼働していない別のメディアに対して適用を行う、というやりかたも考えられるが、以下のようなデメリットがある
そのため、fiupdateでは「今、動いている」メディアのみを対象としてアップデートを行うこととした。
ライブアップデートの検討事項
fiupdateが上書きするファイルシステム・イメージは、OpenBSDのファイルツリー全体が格納されており、上書きされている時もマウントされてアクティブな状態にある。そのため、イメージファイルが上書きされるとシステムはまともに動かなくなる。
制限事項