dpkg-divert(8) パッケージの提供するファイルの上書き

書式

dpkg-divert [option...] command

説明

dpkg-divert は、退避ファイルの一覧を設定、更新するためのユーティリティである。

diversions ファイルにより、dpkg(1) はファイルを本来の場所ではなく、退避 (diverted) 用 の場所にインストールするようになる。diversions ファイルは、Debian パッケージスクリプトが競合を発生させるファイルを移動させるために使うことができる。システム管理者は、パッケージの提供する設定ファイルを上書きする場合や、幾つかのファイル ('conffiles' としてマークされていないもの) について、それらのファイルを含む新しいバージョンのパッケージをインストールする時に、dpkg による上書きから保護する必要がある場合にこれを使うこともできる。

コマンド

[--add] file
file を退避ファイルに追加する。
--remove file
file を退避ファイルから削除する。
--list glob-pattern
glob-pattern にマッチする退避ファイルの一覧を表示する。
--listpackage file
file を退避させているパッケージ名を表示する。file がローカルに退避されている場合は LOCAL と表示される。ファイルが退避されていない場合はなにも表示されない。
--truename file
退避されたファイルの実際のファイル名を表示する。

オプション

--admindir directory
dpkg データディレクトリを directory (デフォルトは /var/lib/dpkg) に設定する。
--divert divert-to
divert-to は、他のパッケージによって提供された file の退避場所である。
--local
パッケージが提供する該当ファイルについてはすべて退避の対象とする。これは、いかなるパッケージがインストールされても、該当のファイルは退避されることを意味する。これにより、管理者が修正したファイルをローカルにインストールすることが可能となる。
--package package
package は、file の退避が発生しないパッケージ名である。つまり、package 以外のすべてのパッケージの提供する file は、退避される。
--quiet
非表示モード。冗長な出力をしない。
--rename
実際にファイルを退避 (もしくは復帰) させる。dpkg-divert は、退避 (復帰) 先のファイルが既に存在していると動作を中断する。
--test
テストモード。実際にはなにも実行せず、なにを実行するかを表示するだけである。
-?, --help
利用方法を表示して終了する。
--version
バージョン情報を表示して終了する。

参考

ファイルを追加する時のデフォルトは、--local および --divert original.distrib である。削除する時に、--package もしくは --local--divert が指定されていた場合は、これらの整合性がとれている必要がある。

dpkg-divert でディレクトリを退避させることはできない。

共有ライブラリを退避する場合は注意が必要である。ldconfig(8) は、ライブラリに埋め込まれている DT_SONAME フィールドに基づいて、シンボリックリンクを作成する。ldconfig では退避を扱うことができない (dpkg だけができる) ため、退避したライブラリと退避していないライブラリが同じ SONAME であれば、シンボリックリンクは退避した方のライブラリを指すことになる。

/usr/bin/example となるファイルすべてを /usr/bin/example.foo に退避させる、つまり、/usr/bin/example を提供するすべてのパッケージが、該当ファイルを /usr/bin/example.foo にリネームしてインストールするようにさせる:
dpkg-divert --divert /usr/bin/example.foo --rename /usr/bin/example

該当の退避ファイルを削除する。

dpkg-divert --rename --remove /usr/bin/example

/usr/bin/example をインストールしようとするすべてのパッケージを /usr/bin/example.foo に退避させる。ただし、自作の wibble パッケージを除く:

dpkg-divert --package wibble --divert /usr/bin/example.foo --rename /usr/bin/example

該当の退避ファイルを削除する。

dpkg-divert --package wibble --rename --remove /usr/bin/example

環境変数

DPKG_ADMINDIR
--admindir オプションが設定されておらず、この変数が設定されている場合、この変数の値が dpkg データディレクトリとして用いられる。
DPKG_MAINTSCRIPT_PACKAGE
--local および --package オプションが設定されておらず、この変数が設定されている場合、dpkg-divert は、この変数の値をパッケージ名として使用する。

ファイル

/var/lib/dpkg/diversions
システムの現在の退避ファイルの一覧を含むファイル。これは dpkg にとって重要なファイルである statusavailable とともに、dpkg の管理ディレクトリに存在する。
注記: dpkg-divert は、このファイルを更新する時に古いバージョンを -old という拡張子をつけたファイルにコピーして保存する。

翻訳者

高橋 基信 <[email protected]>. 喜瀬 浩 <[email protected]>. 関戸 幸一 <[email protected]>. 鍋谷 栄展 <[email protected]>. 倉澤 望 <[email protected]>. 石川 睦 <[email protected]>. 鵜飼 文敏 <[email protected]>. 中野 武雄 <[email protected]>.

翻訳校正

Debian JP Documentation ML <debia[email protected]>.