[% title = "Debian Packaging Manual - 退避バージョン - あるパッケージに含まれるファイルを上書きするには" %]
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]
パッケージを再インストールする時、その中のあるファイルを dpkg
によって上書きさせないようにして、
そのファイルをどこか他の場所に置くことができます。
この方法は、あるパッケージに含まれるファイルを個人的に 入れ替える場合や、あるパッケージが別のパッケージに含まれる ファイルを置き換える (または、そのプログラムのラッパーを 提供する) 場合に利用できます。
退避バージョン (diversion) の使用を決定する前に、 代替バージョンへのインターフェース -
update-alternatives
, Chapter 10 を読んでください。本当に、
あるプログラムに対して複数の代替バージョンを提供するよりも、
退避バージョンを使用する方が適切であること確認してください。
退避操作専用のプログラムである dpkg-divert
は、
退避されたファイル一覧を更新します。この一覧は、 dpkg
によって使用されます。この操作に関する詳細は、 dpkg-divert(8)
をご覧ください。
あるパッケージが、別のパッケージに含まれるあるファイルを
退避したい場合、preinst スクリプト中から、 dpkg-divert
を呼ばなければいけません。 dpkg-divert
は、退避ファイル一覧にエントリを
追加し、既存のファイルの名前を変更します。例えば、 smailwrapper
というパッケージが、 /usr/sbin/smail を包含するラッパーを
インストールしようとしている場合を考えます:
if [ install = "$1" -o upgrade = "$1" ]; then dpkg-divert --package smailwrapper --add --rename \ --divert /usr/sbin/smail.real /usr/sbin/smail fi
最初の引数 $1 をテストしているのは、 smailwrapper
を更新するときに、スクリプトが
再度退避操作を行わないようにするためです。オプション --package
smailwrapper は、smailwrapper
に含まれる
/usr/sbin/smail が、退避バージョンではなく
本来のバージョンとしてそのままインストールされることを 保証します。
postrm の場合はちょうどこの逆を行います:
if [ remove = "$1" ]; then dpkg-divert --package smailwrapper --remove --rename \ --divert /usr/sbin/smail.real /usr/sbin/smail fi
システムの運用に重要なファイルを退避しようとしないで下さい -
dpkg-divert
の使用時には、ファイルの退避が 行われた後に
dpkg
が新しいバージョンを
インストールするまでの間、そのファイルが存在しない タイミングがあるのです。
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]
Debian Packaging Manual
version revision 1.13, 2000-08-22ijackson@gnu.ai.mit.edu
bweaver@debian.org
schwarz@debian.org
srivasta@debian.org
J.D.Gilbey@qmw.ac.uk
debian-policy@lists.debian.org
shayase@tky3.3web.ne.jp
debian-doc@debian.or.jp