[% title = "Debian Packaging Manual - 退避バージョン - あるパッケージに含まれるファイルを上書きするには" %]


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]


Debian Packaging Manual
Chapter 11 - 退避バージョン - あるパッケージに含まれるファイルを上書きするには


パッケージを再インストールする時、その中のあるファイルを 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-22

Ian Jackson ijackson@gnu.ai.mit.edu
校正: David A. Morris bweaver@debian.org
メンテナー: Christian Schwarz schwarz@debian.org
メンテナー: Manoj Srivastava srivasta@debian.org
メンテナー: Julian Gilbey J.D.Gilbey@qmw.ac.uk
メンテナー: The Debian Policy group debian-policy@lists.debian.org
日本語版メンテナー: 早瀬 茂規 shayase@tky3.3web.ne.jp
日本語版校正: Japanese Debian Documentation Project debian-doc@debian.or.jp