wiki:Packages/update-from-skel

Version 2 (modified by yasumichi, 12 years ago) (diff)

--

update-from-skel

現在は、 VinePlus の扱いであるため、追加でパッケージをインストールする必要があります。

$ sudo apt-get update
$ sudo apt-get install update-from-skel

アップグレードインストールなどにより、etcskel パッケージが更新された場合などに /etc/skel に存在する設定ファイルの雛形とホームディレクトリにあるファイルを比較し、差異があれば更新を行うためのメニューを表示します。gettexize されているので LANG="C" な環境では、(Broken)英語で表示されます。

$ update-from-skel

差異がない場合

/home/username/.bash_logout と /etc/skel/.bash_logout の間に違いはありません。

上記の様に違いがないことのみを報告して、次のファイルの比較へ自動的に移行します。

差異がある場合

対応するファイルが存在し、内容に違いがある場合、次の様に side-by-side 形式で違いを表示します。

===================
違いを検出
===================
/home/username/.rpmmacros                                 /etc/skel/.rpmmacros

# GnuPG によるパッケージ署名を行う                          # GnuPG によるパッケージ署名を行う
%_signature gpg                                         | # %_signature gpg
%_gpg_name Anatano Namae <user@domain>                  | # %_gpg_name Your
Name <your mail address>

# ソースファイル置き場をパッケージ別にする                   # ソースファイル置き場をパッケージ別にする
%_sourcedir %{_topdir}/SOURCES/%{name}                    %_sourcedir %{_topdir}/SOURCES/%{name}

左側と右側のファイルの間に出力される記号は以下のとおりです。

記号説明
対応する行が共通である。つまり、両方の行が同一であるか、 違いが --ignore オプションのいずれかによって無視された。
| 対応する行が異なる。両方とも完全か、両方とも不完全かである。
< ファイルは異なり、左側のファイルにだけこの行が含まれている。
> ファイルは異なり、右側のファイルにだけこの行が含まれている。
( 左側のファイルにだけこの行が含まれているが、違いは無視される。
) 右側のファイルにだけこの行が含まれているが、違いは無視される。
\ 対応する行が異なる。左側のファイルにだけ行末の改行がない。
/ 対応する行が異なる。右側のファイルにだけ行末の改行がない。

通常出力行は、そこに含まれる行の末尾に改行がない場合に限って改行されない。しかし、出力行が 2 行の差異を表している場合には、 片方だけに改行がない場合もあり得る。この場合出力行には改行が出力されるが、 溝のマークは左側の行末に改行がなければ \' に、右側の行末に改行がなければ /' になる。

差分を表示し終わるとメニューを表示し、ユーザーの入力を待ちます。

C) 現在のファイルを利用
T) テンプレートファイルを利用
E) vim の diff モードで編集
I) sdiff を利用して対話的に結合
Q) 終了する
どうしますか? >

大文字・小文字は区別しません。C) などなっている部分のアルファベットを入力し、Enter キーを押してください。

文字説明
C ホームディレクトリにあるファイルをそのまま使用します。次のファイルの比較へ移行します。
T /etc/skel にあるファイルをホームディレクトリへコピー(上書き)します。次のファイルの比較へ移行します。
E エディタ vim の diff モードを利用してファイルを編集します。
I sdiff を利用して2つのファイルを対話的にマージして新しい設定ファイルにします。
Q (比較するべきファイルが残っていても)このツールを終了します。

/etc/skel のみに存在するファイルがある場合

/etc/skel のみに存在するファイルがある場合、以下のように表示し、ユーザーの入力を待ちます。

===================
違いを検出
===================
/etc/skel/.Wnn7/uumrc が存在しますが、/home/username/.Wnn7/uumrc は存在しません。

C) /etc/skel/.Wnn7/uumrc を /home/username/.Wnn7/uumrc にコピー
N) なにもしない
Q) 終了する
どうしますか? >
文字説明
C /etc/skel にあるファイルをホームディレクトリの該当位置にコピーします。
N なにもせず、次のファイルの比較に移行します。
Q (比較するべきファイルが残っていても)このツールを終了します。