e1234
2024年4月22日 14時43分
以下の記事を参照いたしました。
https://armadillo.atmark-techno.com/blog/15349/11131
上記記事の「2.Armadillo Base OSのアップデート」の「①rootfsを変更しない場合」に関して、
SWUpdateのdescファイル書式について、質問です。
■質問内容
(1)
descファイルの内容を
-------------------------------------------------
swdesc_tar "baseos-600-3.19.1-at.1.tar.zst" \
--version base_os 3.19.1-at.1
-------------------------------------------------
として作成し、mkswuコマンドでswuファイルを生成するコマンドを実行すると、
swuファイルは生成できたのですが、Warningが出力されていました。
「base_osアップデートで--preserve-attributesを自動的に設定しました。」というのはどういう意味なのか、
ご教授いただけないでしょうか?
-------------------------------------------------------------------------------
atmark@atde9:~/mkswu$ mkswu -o baseos_update.swu baseos_update.desc
Warning: base_osアップデートで--preserve-attributesを自動的に設定しました。
Enter pass phrase for /home/atmark/mkswu/swupdate.key:
baseos_update.swu を作成しました。
-------------------------------------------------------------------------------
(2)
「--versionに続く"base_os"はrootfsを変更しない場合に指定します。」と記載がありましたが、
例えば、descファイルに、
-------------------------------------------------
swdesc_tar "baseos-600-3.19.1-at.1.tar.zst" \
--version base_os 3.19.1-at.1
-------------------------------------------------
と記載すると、
/etc/swupdate_preserve_files に記載されたファイル"以外"を、
"baseos-600-3.19.1-at.1.tar.zst"の内容で更新する
という理解であっていますでしょうか?
たとえば、ArmadilloホストOS上に/etc/proftpdや/etc/rsyslog.confがある状態で、
Armadillo BaseOSのアップデートによりファイルを消したくない場合は、
/etc/swupdate_preserve_filesに、
--------------------
/etc/proftpd
/etc/rsyslog.conf
--------------------
を追記すればよいのでしょうか?
コメント
e1234
at_satoshi.ohta
2024年4月22日 16時38分
太田です。
(1)についてですが、
--preserve-attributes は swupdate のオプションです。
https://sbabic.github.io/swupdate/handlers.html#archive-handler
ここの記述にあるように、このオプションを追加することで、アーカイブからファイルを解凍する際に、uid/gidやパーミッションなどの属性を保持するようにしています。
--preserve-attributes をつけない場合、例えば /home/atmark や /etc/shadow の uid/gid が root のものになってしまいます。
基本的には必要なオプションであるため、SWU ファイル生成時に自動的に設定するようにしています。
また、
ですが、表示として Warning というより Info が適切だと思うので、来月修正を行う予定です。
(2)についてですが、
base_os は Armadillo Base OS を SWU ファイルから一括アップデートする際に使用します。
> /etc/swupdate_preserve_files に記載されたファイル"以外"を、
> "baseos-600-3.19.1-at.1.tar.zst"の内容で更新する
> という理解であっていますでしょうか?
このご質問についてですが、/etc/swupdate_preserve_files の書き方によります。
例えば、descファイルに、
と記述されていて、
/etc/swupdate_preserve_filesに、
と記述がされている場合について説明します。
swupdate の順番は
① /etc/swupdate_preserve_files の /etc/proftpd をコピー
② baseos-600-3.19.1-at.1.tar.zst を展開
③ /etc/swupdate_preserve_files の POST で指定されている /etc/rsyslog.conf をコピー
となります。
そのため、この場合、もし baseos-600-3.19.1-at.1.tar.zst に /etc/proftpd がある場合は baseos-600-3.19.1-at.1.tar.zst にある /etc/proftpd で更新されます。
確実に /etc/swupdate_preserve_files に記載されたファイルを更新したくない場合は、 POST で指定してください。
よろしくお願いいたします。