FreeBSD 12.4-RELEASE から 14-CURRENT への etcupdate ― 2023年06月29日 04時23分35秒
現時点では、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 にマウントされている。
extract で元になる、12.4-RELEASE の etc 情報を取得する。後は、etcupdate をそのまま実行すれば、現状が分かるようだ。status コマンドで、どのファイルが問題かを見られる。resolve コマンドでコンフリクトを解消。Subversion のコンフリクト処理と似ていて、their-full(tf) や mine-full(mf) 等のコマンドも使える。
# 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
次回。
最近のコメント