dispatch-conf の使い方
dispatch-conf は、etc-update に代わる GentooLinux の設定ファイル更新サポートツールです。etc-update よりも格段に賢い自動処理機能、設定ファイルの履歴管理などの特徴を持ち、より安全に効率良く設定ファイルの更新作業を行うことができます。今日はこの dispatch-conf の使用方法をご紹介しようと思います。
準備
dispatch-conf を使い始めるには、少々前準備が必要です。といっても大した作業ではないので、ご安心を。
RCS のインストール
必須ではありませんが、dispatch-conf は設定ファイルの履歴を取るために RCS を利用することができます。ちなみに、RCS を使わないように設定すると、生のパッチで管理するようです。それよりはなんぼかマシなので、RCS を使いましょう。emerge で以下のようにすればインストールできます。
emerge -n app-text/rcs
-n はすでにインストールされている場合に再インストールしないようにするオプションです。
dispatch-conf.conf の設定
dispatch-conf の設定ファイルが "/etc/dispatch-conf.conf" です。以下の設定項目があります。
設定項目 | 機能 |
---|---|
archive-dir | 履歴データを格納するディレクトリを指定する |
use-rcs | yes なら履歴管理に RCS を利用する |
diff | 差分表示に使用するコマンドを指定する |
merge | 対話的なマージに使用するコマンドを指定する |
replace-cvs | yes なら CVS が自動挿入するコメントが変更されたときに自動処理する |
replace-wscomments | yes なら空白やコメントが変更されただけのときに自動処理する |
replace-unmodified | yes ならユーザーが変更していないファイルは自動処理する |
log-file | ログファイルを指定する |
せっかく RCS をインストールしたので、use-rcs は yes に変更しておきましょう。後はお好みで。replace-* は yes にしたほうが手動マージの手間がかなり減るはずです。もし間違いが起こってもいつでも元に戻せますから、yes にしてしまっても大丈夫でしょう。
履歴データ用のディレクトリを作成する
履歴データ用のディレクトリはデフォルトでは作成されていませんので、手動で作成する必要があります。デフォルト設定なら、以下のように作成します。
mkdir /etc/config-archive
これで dispatch-conf を使う準備が整いました。
使ってみる
それでは、実際に dispatch-conf を使ってみましょう。といっても、更新するものがなければ意味がないので、ここでは "emerge --update world" を実行して、いくつかの設定ファイルの更新が必要になったと仮定します。設定ファイルの更新を開始するには、単純に dispatch-conf を実行します。
dispatch-conf
そうすると、可能ならば自動処理で設定ファイルをマージしていきます。そして自動処理できないファイルが見つかると、差分を表示してコマンド待ちの状態になります。このときに使用できるコマンドは以下のとおりです。
コマンド | 機能 |
---|---|
u | 更新ファイルで置き換える |
z | 更新ファイルを削除し、古いファイルを維持する |
n | なにも処理せずにスキップする |
e | 更新ファイルを $EDITOR で編集する |
m | 対話的なマージを行う |
l | 古いファイルと更新ファイルの差分を表示する |
t | 更新ファイルをトグルで切り替える |
q | dispatch-conf を終了する |
ここで「更新ファイル」と言っているのは、新バージョンの設定ファイルです。ただし、m コマンド実行後はこの意味が変わってきます(後述)。また、t コマンドはこの時点では効果がありません。
- 2006/3/17 追記
- z コマンドはなるべく使わないほうがよいと思います。これを選んでしまうとオリジナルのファイルが履歴に追加されず、自動マージの機能がうまく働かなくなるようです。バグなのかなぁ・・・?(゜゜;
m コマンドの挙動は etc-update とまったく同じのようです。etc-update をご紹介したときの対話的マージのコマンド表を再掲載しておきます。
コマンド | 機能 |
---|---|
ed | ヘッダつきで、双方の変更を編集した後、採用する |
eb | ヘッダなしで、双方の変更を編集した後、採用する |
el | 古いバージョンを編集した後、採用する |
er | 新しいバージョンを編集した後、採用する |
e | 新規にその部分を入力し、採用する |
l | 古いバージョンを採用する |
r | 新しいバージョンを採用する |
s | 共通行の表示 ON |
v | 共通行の表示 OFF |
q | 終了 |
すべてのブロックをマージし終えると、最初のプロンプトに戻ります。ここでは最初とは違い、マージ後のファイルが「更新ファイル」として扱われます。例えば、u コマンドを実行するとマージ後のファイルが採用されます。また、t コマンドを実行すると「更新ファイル」として扱われるファイルが新しいファイルとマージ後のファイルで交互に切り替わります。ちょっと混乱しやすいので注意してください。
あとは、これを繰り返していけば設定ファイルの更新が完了します。最初は差分が抽出できないためにすべての設定ファイルを手動マージすることになりますが、次回同じファイルを更新するときは可能な限り自動処理してくれます。
dispatch-conf の使用方法は以上です。RCS のコマンドを使えば設定ファイルを過去の状態に戻すことも容易なのですが、それはまた今度記事にしたいと思います。まだ私も使い始めたばかりですが、手動マージを行う手間が etc-update よりも格段に減って、システムの更新がかなり楽になります。まだ etc-update を使っている方は、ぜひ試してみてください!(^^)
詳しくはこちらの記事をどうぞ!
この記事にコメントする