青木@名古屋さん
  和麻呂です

早速の助言ありがとうございます。

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>

Reply via email to