書式
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 にとって重要なファイルである status や available
とともに、dpkg の管理ディレクトリに存在する。
注記: dpkg-divert は、このファイルを更新する時に古いバージョンを -old という拡張子をつけたファイルにコピーして保存する。