ハンドブック:SPARC/Portage/ツール
dispatch-conf
dispatch-conf は ._cfg0000_<name> ファイルのマージに役立つツールです。._cfg0000_<name> ファイルは Portage が CONFIG_PROTECT 変数でプロテクトされているディレクトリーのファイルを上書きしたい時に生成されます。
dispatch-conf を使うと、ユーザーはすべての変更を追跡しつつ設定ファイルへの更新をマージできます。dispatch-conf は設定ファイル間の差分をパッチとして、または RCS リビジョン管理システムを使用して保管します。これはつまり、誰かが設定ファイルの更新中にミスをしたとしても、管理者はいつでもそのファイルを以前のバージョンに差し戻せるということです。
dispatch-conf を使用すると、ユーザーは設定ファイルをそのままにしておくか、新しい設定ファイルを使うか、現在のものを編集するか、または変更箇所を対話的にマージするか尋ねられます。また、dispatch-conf にはいくつかの素晴らしい追加機能もあります:
- コメントの更新のみを含む設定ファイルの更新を自動的にマージする。
- スペースの数のみが異なる設定ファイルを自動的にマージする。
まず /etc/dispatch-conf.conf を編集してから archive-dir 変数で参照されているディレクトリーを作成します。それから dispatch-conf を実行します:
root #
dispatch-conf
dispatch-conf を実行すると、変更された各設定ファイルが一つずつ検討されます。現在の設定ファイルを新しいもので更新(置き換え)して次のファイルに進むには u を押します。新しい設定ファイルを消去(削除)して次のファイルに進むには z を押します。n キーは dispatch-conf に次のファイルにスキップするよう指示します。これを使ってマージを未来に延期することもできます。すべての設定ファイルが済むと dispatch-conf は終了します。同様に、いつでも q でアプリケーションを終了させることができます。
詳細については dispatch-conf の man ページを調べてください。現在の設定ファイルと新しい設定ファイルを対話的にマージしたり、新しい設定ファイルを編集したり、ファイル間の差分を検査する方法などが説明されています。
user $
man dispatch-conf
etc-update
設定ファイルをマージするためのもう一つのツールが etc-update です。使い方は dispatch-conf ほどシンプルではなく機能も豊富ではありませんが、対話的な設定マージ機能は提供されていますし、些細な変更を自動マージすることもできます。
しかしながら、dispatch-conf とは異なり、etc-update は設定ファイルの旧バージョンを保持しません。ひとたびファイルが更新されれば古いバージョンは永久に失われます。気を付けてください、古い設定ファイルを維持する場合には etc-update を使用している時の方が dispatch-conf を使用するよりもかなり安全性が低くなります。
root #
etc-update
直接的な変更をマージした後に、プロテクトされている更新待ちファイルの一覧が提供されます。その下に選択可能なオプションが表示されます:
Please select a file to edit by entering the corresponding number. (-1 to exit) (-3 to auto merge all remaining files) (-5 to auto-merge AND not use 'mv -i'):
-1
を入力すると etc-update は終了しそれ以上の変更は行われません。-3
や -5
ではリストされた設定ファイルがすべて新しいバージョンで上書きされます。ですから、まず最初に自動的に更新されるべきでない設定ファイルを選択することが大事です。これは設定ファイルの左に表示されている番号を単に入力するだけです。
例として、/etc/pear.conf を選択してみます:
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf [...] End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf 1) Replace original with update 2) Delete update, keeping original as is 3) Interactively merge original with update 4) Show differences again
2つのファイルの差異が表示されます。更新された設定ファイルが問題なく使えるなら 1 を入力してください。更新された設定ファイルが不要、または新しかったり有用であったりする情報を何も提供していない場合には 2 を入力してください。現在の設定ファイルを対話的に更新する必要がある場合には 3 を入力してください。
対話的マージについてはここでさらに詳述しても意味はありません。完全を期するために、ここでは2つのファイルをマージする間に利用できるコマンドの候補を挙げます。ユーザーには2つの文章(元々のものと新しく提案されているもの)と、以下のコマンドの中の1つを入力できるプロンプトが表示されます:
ed: Edit then use both versions, each decorated with a header. eb: Edit then use both versions. el: Edit then use the left version. er: Edit then use the right version. e: Edit a new version. l: Use the left version. r: Use the right version. s: Silently include common lines. v: Verbosely include common lines. q: Quit.
重要な設定ファイルの更新を終えたら、他のすべての設定ファイルを自動的に更新することができます。それ以上更新できる設定ファイルがなくなると etc-update は終了します。
quickpkg
quickpkg を使うと、既にシステムにマージされたパッケージのアーカイブを作ることができます。それらのアーカイブはビルド済みパッケージとして利用できます。quickpkg の実行は簡単です: アーカイブするパッケージの名前を付け加えるだけです。
たとえば curl、orage、そして procps をアーカイブするには:
root #
quickpkg curl orage procps
ビルド済みパッケージは $PKGDIR (デフォルトでは /var/cache/binpkgs/) に保管されます。これらのパッケージは $PKGDIR/CATEGORY に配置されています。