青木@名古屋さん 和麻呂です 早速の助言ありがとうございます。
handbook 26.6節を要約すると 古いsource tree# etcupdate extract 新しいsource tree# make installkernel reboot 新しいsource tree# etcupdate -p 新しいsource tree# make installworld 新しいsource tree# etcupdate -B reboot というように見えますが、助言頂いたのだと、etcupdateの-B optionをつける のがetcupdate extractの方で、本番(?)の方では、なし、ということでしょう か。 etcupdateのonline manualを見てもイマイチ-B optionの挙動がわかっていな いので気になっています。 もう一点、git cloneで/usr/srcを取ってきたのですが、FreeBSD ID stringと 思われるものが $FreeBSD$ というように書いてあり、 $FreeBSD: releng/12.4/etc/login.access 130151 2004-06-06 11:46:29Z schweikh $ といった形式より短いのが気になっていて、これが-F optionをつけた時に悪 さをしているのかなぁと思ったりもしています。 varmfsは使ってません。ただ、/var/db/etcupdateの存在には気がついたので すが、そこを見ても以前の/etcは見当たりませんでした。 なお、viはあんまり得意ではありませんが使えますし、3-way mergeも30年ほ ど前になりますが、PVCSとかいう感じの名前のものを使ったことがあるのでわ かりますので大丈夫です。 ただ、etcupdateで「C」つきのが出てきた時がconflictだという認識がなかっ たので、最初はetcupdate resolveを忘れていましたが、とりあえずetcupdate のあとにいつでもetcupdate resolveすれば、conflictがあろうとなかろうと うまくいくという理解です。 青木和麻呂 【以下、全文引用】 From: Tomoaki AOKI <junch...@dec.sakura.ne.jp> Subject: Re: how to use etcupdate? Date: Thu, 11 Jan 2024 18:47:44 +0900 > 青木@名古屋です。 > > 今更ですが、基本、etcupdateは、初めて使う場合、 > ・srcツリーの【更新前】に`etcupdate extract -B`で > 比較対象用のツリーを構築 > ・srcツリー更新・リビルド・`make installkernel`後、 > `etcpudate -p` > ・シングルユーザで再起動後(ZFS関連の更新だと再起動 > せず`shutdown now`でシングルユーザに落ちるだけで > 処理する必要があるケースも)、`make installworld`後、 > `etcupdate -B`で残りを更新。 `make delete-old`を > やるならそちらを先に。 `make delete-old-libs`は > 最後の最後、ports等も含めて古いライブラリを使うものが > 何も無くなったと確認できた後で。 > > でだいたいうまくいきますが、"C"マークの付いたアイテム > (srcでの変更とローカル設定での変更が衝突)があると > 手動での取捨選択が必要になります。 forums.freebsd.orgの > 方で、rootのEDITOR環境変数が未設定の場合のデフォルトがvi > だったこともあって、特にviに不慣れな人たち中心に阿鼻叫喚の > 地獄絵図が。 3ways mergeの扱いがわからないのに加えてviの > 操作も分からないという2重苦が蔓延してました。 > > 和麻呂さん(どちらも青木で紛らわしいので(^^;)の場合、 > srcの更新前(前のsrcツリーを更新したんですよね?)に > 比較用のツリーを用意されているようなので問題なさそうですが、 > 念の為、varmfs環境ではありませんよね? > etcupdateはデフォルトで作業用データを/var/db/etcupdate以下に > 構築・保存するので、varmfsな環境だと再起動時に消滅して > しまいますので。 > > 私の場合、etcupdateが初めてsrcに取り込まれてすぐの更新で > いきなり試して、最初のステップを演っていなかったため > ドツボに嵌まった経験があります。 確か、etcupdateの作業用 > データ保存先を必死に探して消去し、一旦srcツリーをsvnliteで > 強制的に更新前の状態に戻して最初のステップをやり直して > 強引に処理したかと思います。 > > 12月あたりからのforumsの関係しそうなスレッドはこの辺でしょうか。 > あくまで私が何らかのアクションを行ってWatched threadsにリスト > される範囲ですが。 確か、まだあったと思います。 > > > https://forums.freebsd.org/threads/14-0-release-conflicts-in-etc-passwd-results-in-losing-root.91124/ > > > https://forums.freebsd.org/threads/14-0-release-upgrade-question-merge-conflict-markers-remain.91079/ > > > On Thu, 11 Jan 2024 15:00:26 +0900 (JST) > Kazumaro Aoki <k...@flu.if0.org> wrote: > >> 青木@藤沢市在住です >> >> 12RのEoLと前後していくつかの12Rを13Rにupgradeしました。 >> やってないだけではあるのですがbinary updateは経験がないので、source >> treeからのmake installworldです。 >> >> また、mergemasterは13Rでなくなって14Rからの標準ということもきき、その >> 練習を兼ねてhandbook chapter 26.6を見ながら実施しました。 >> >> まずは、 >> etcupdate extract >> して、sourceをgitで取りだし、make buildkernel buildworldしました。 >> 次にmake installkernelして、 >> etcupdate -F -p >> を実行したところCつきのファイルが出たPCでは次の >> etcupdate resolve >> で修正しました。次にmake installworldして、 >> etcupdate -F -B >> したら、かなりの/etcのファイルが0バイトんなってしまって、困ってます。 >> >> handbookの方ではetcupdateの-F optionは書いていなかったのではありますが、 >> online manualを見る限りmergemasterと同じように作業負荷を減らしてくれそ >> うに思いつけてみました。これがまずかったのでしょうか? >> >> 青木和麻呂 @ 藤沢市在住 >> > > > -- > 青木 知明 [Tomoaki AOKI] <junch...@dec.sakura.ne.jp>