FreeBSD 12.4-RELEASE から 14-CURRENT への etcupdate2023年06月29日 04時23分35秒

FreeBSD 14.0-RELEASE はまだまだ先。しかし、FreeBSD 14.0-RELEASE にて、mergemaster は廃止される。

現時点では、etcupdate に関しての情報がかなり少ない。man を見ると、元々 FreeBSD 10.0-RELEASE から存在したらしく、その無名さに驚いた。

基本的に、3-way マージなので、現在利用中のリリースと 14-CURRENT の etc を専用コマンドで、取得すれば良いみたいだ。

FreeBSD 12.4-RELEASE のコードを /mnt/12.4 に、14-CURRENT のコードを /usr/src に取得している。etcupdate のみなら、buildworld 等は必要無さそうだ。なお、14-CURRENT をインストールしたファイルシステムは、 /mnt/stable にマウントされている。

# etcupdate extract -s /mnt/12.4/src -D /mnt/stable
# etcupdate -s /usr/src -D /mnt/stable
Conflicts remain from previous update, aborting.
# etcupdate status  -D /mnt/stable
# etcupdate status  -D /mnt/stable
  C /etc/defaults/rc.conf
  C /etc/devd.conf
  C /etc/group
  C /etc/hosts
  C /etc/inetd.conf
  C /etc/libmap.conf
  C /etc/master.passwd
  C /etc/mtree/BSD.debug.dist
  C /etc/mtree/BSD.include.dist
  C /etc/mtree/BSD.lib32.dis
# etcupdate resolve -D /mnt/stable
extract で元になる、12.4-RELEASE の etc 情報を取得する。後は、etcupdate をそのまま実行すれば、現状が分かるようだ。status コマンドで、どのファイルが問題かを見られる。resolve コマンドでコンフリクトを解消。Subversion のコンフリクト処理と似ていて、their-full(tf) や mine-full(mf) 等のコマンドも使える。

次回

コメント

_ Tomoaki AOKI ― 2023年06月30日 08時53分44秒

最初のextractはハマりがちなところですね。
私も乗り換えようとしてoldツリーに使うべきものが無い(/usr/src更新・リビルド済)
ことに気づいてmergemasterで凌いでからextractやって次に備えた記憶があります。

mergemaster廃止なら、freebsd-updateやinstallworldの初期段階で
oldツリーもcurrentツリーも無ければインストール済みのexamples等から
currentツリーを構成(次のetcupdateでoldツリーにローテート)するくらいの
機能は必要かもしれません。 bsdinstallにも初期のcurrentツリーを構築する
機能を盛り込む必要も(まだ無ければ)ありますね。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2023/06/29/9597932/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。