wiki:Packages/proc-rpmnew

proc-rpmnew

パッケージアップグレード時に作成される *.rpm{new,save} を検索し、現在の設定ファイルと比較し、更新を助けるツールです。

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

$ sudo apt-get update
$ sudo apt-get install proc-rpmnew

実行手順

proc-rpmnew は、sudo などを利用して root 権限で実行する必要があります。(一般ユーザーでは正常に実施できません。)

$ sudo proc-rpmnew

検出されたファイルの操作

*.rpmnew や *.rpmsave などのファイルを検出すると以下のように表示され、ユーザーの入力を待ちます。

現在の設定ファイル: /etc/mplayer/mplayer.conf		(2011-06-24 21:34:53.000000000 +0900)
保存されたファイル: /etc/mplayer/mplayer.conf.rpmsave	(2010-07-25 00:58:50.000000000 +0900)
S) 差分を表示する
E) vimのdiffモードで編集する
I) sdiffによって対話的に結合する
R) 現在の設定ファイルを保存されたファイルで置き換える
P) 現在の設定ファイルを保護し、保存されたファイルを削除する
Q) 終了する
N) 次のファイルへ
どうしますか? > 

次の表で示すコマンドのいずれかを入力して Enter キーを押してください。

コマンド 説  明
S diff により side-by-side 形式で違いを表示します。現在利用されている設定ファイルが左側に、検出されたファイル (*.rpm{new,save}) が右側に表示されます。
E vim の diff モードで編集します。現在利用されている設定ファイルの内容が左側のバッファに、検出されたファイル (*.rpm{new,save}) が右側のバッファに開かれます。
I sdiff を利用して2つのファイルを対話的にマージして新しい設定ファイルにします。現在利用されている設定ファイルが左側に、検出されたファイル (*.rpm{new,save}) が右側に表示されます。
R 現在の設定ファイルを検出されたファイル (*.rpm{new,save}) で置き換えます(mv)。その後、自動的に次のファイルの検出に移行します。
P 現在の設定ファイルをそのまま残し、保存されたファイル (*.rpm{new,save}) を削除します(rm)。その後、自動的に次のファイルの検出に移行します。
Q (処理するべきファイルが残っていても)このツールを終了します。
N なにもせず、次のファイルの検出に移行します。

差分表示時の記号の意味

S および I コマンドを使用した際、左側(現在利用されている設定ファイル)と右側のファイル (*.rpm{new,save}) の間に出力される記号の意味は以下のとおりです。

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

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

sdiff によって対話的に結合

共通行のブロックは、左側のファイル(現在利用されている設定ファイル)から出力にコピーされます。異なっている行ブロックのあとには、`%' でプロンプトを出して一時停止し、 以下のコマンドのどれか 1つが入力されるのを待ちます。

コマンド 詳細
e 両方のバージョンとも捨てる。内容が空の一時ファイルをテキストエディタで開き、 エディタ終了後のファイルの内容を出力にコピーする。
eb 両方のバージョンを結合した結果をエディタで編集し、 終了後の内容を出力にコピーする。
ed eb と似ているが、各バージョンのブロックの前にヘッダを置き、どのファイルのどの行のものかがわかるようにする。
el 左側(現在利用されている設定ファイル)のバージョンをエディタで編集し、終了後の内容を出力にコピーする。
er 右側 (*.rpm{new,save}) のバージョンをエディタで編集し、終了後の内容を出力にコピーする。
l 左側(現在利用されている設定ファイル)のバージョンを出力にコピーする。
q 終了する。
r 右側 (*.rpm{new,save}) のバージョンを出力にコピーする。
s 共通な行を表示せずにコピーする。
v 共通な行を表示しながらコピーする。デフォルト。

フィードバック

以下のような事項があれば、BTS にレポートを作成してください。

  • バグ
  • メッセージが分かりにくい
  • 機能追加要望