[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Packaging Manual 第11章
またまた、早瀬です。
Packaging Manual 第11章 まで作業が終りましたので、
こちらについても、どうぞよろしくお願い致します。
# そろそろゴールが見えて来ました。
# .deb 化については、芳尾さんにやって頂いてもよいでしょうか?
--
早瀬 茂規 (shayase@xxxxxxxxxxxxxxx)
<!-- ORIG
<chapt id="diversions"><heading>Diversions - overriding a
package's version of a file
ORIG -->
<chapt id="diversions"><heading>退避バージョン -
あるパッケージに含まれるファイルを上書きするには
</heading>
<p>
<!-- ORIG
It is possible to have <prgn>dpkg</prgn> not overwrite a file
when it reinstalls the package it belongs to, and to have it
put the file from the package somewhere else instead.
ORIG -->
パッケージを再インストールする時、その中のあるファイルを
<prgn>dpkg</prgn> によって上書きさせないようにすることが
できます。そして、そのファイルをどこか他の場所に置くことも
できます。
</p>
<p>
<!-- ORIG
This can be used locally to override a package's version of a
file, or by one package to override another's version (or
provide a wrapper for it).
ORIG -->
この方法は、あるパッケージのあるバージョンを同一のプログラムで
上書きする場合にも使えますし、違ったパッケージのファイルを
上書きする場合にも使えます
(または、そのプログラムを包含するラッパーを提供します)。
</p>
<p>
<!-- ORIG
Before deciding to use a diversion, read <ref
id="alternatives"> to see if you really want a diversion
rather than several alternative versions of a program.
ORIG -->
退避バージョン (diversion) の使用を決定する前に、
<ref id="alternatives"> を読んでください。本当に、
退避バージョンを必要としているのか、単にあるプログラムの
いくつかの代替バージョンを必要としているのではないのか、
確認してください。
</p>
<p>
<!-- ORIG
There is a diversion list, which is read by <prgn>dpkg</prgn>,
and updated by a special program <prgn>dpkg-divert</prgn>.
Please see <manref name="dpkg-divert" section="8"> for full
details of its operation.
ORIG -->
特別なプログラム、<prgn>dpkg-divert</prgn> は、退避された
パッケージのバージョンリストを更新します。そして、そのリストは、
<prgn>dpkg</prgn> によって使用されます。詳しくは、
<manref name="dpkg-divert" section="8"> をごらんください。
</p>
<p>
<!-- ORIG
When a package wishes to divert a file from another, it should
call <prgn>dpkg-divert</prgn> in its preinst to add the
diversion and rename the existing file. For example,
supposing that a <prgn>smailwrapper</prgn> package wishes to
install a wrapper around <tt>/usr/sbin/smail</tt>:
ORIG -->
パッケージが、その中のファイルを他のものと置きかえようと
する場合、preinst スクリプト中から、<prgn>dpkg-divert</prgn>
を呼ばなければいけません。そして、退避バージョンを付けくわえ、
既存のファイルの名前を変更します。例えば、
<prgn>smailwrapper</prgn> というパッケージが、
<tt>/usr/sbin/smail</tt> を包含するラッパーを
インストールしようとしている場合を考えます:
<example>
if [ install = "$1" ]; then
dpkg-divert --package smailwrapper --add --rename \
--divert /usr/sbin/smail.real /usr/sbin/smail
fi
<!-- ORIG
</example> Testing <tt>$1</tt> is necessary so that the script
doesn't try to add the diversion again when
<prgn>smailwrapper</prgn> is upgraded. The <tt>−package
smailwrapper</tt> ensures that <prgn>smailwrapper</prgn>'s
copy of <tt>/usr/sbin/smail</tt> can bypass the diversion and
get installed as the true version.
ORIG -->
</example>最初の引数 <tt>$1</tt> をテストしているのは、
<prgn>smailwrapper</prgn> を更新するときに、スクリプトが
再度退避操作を行わないようにするためです。オプションの
<tt>--package smailwrapper</tt> は、<prgn>smailwrapper</prgn>
のコピーである <tt>/usr/sbin/smail</tt> の退避バージョンを
作らず、かつ<prgn>smailwrapper</prgn> が本来のバージョンとして
インストールされることを保証します。
</p>
<p>
<!-- ORIG
The postrm has to do the reverse:
ORIG -->
postrm の場合はちょうどこの逆を行います:
<example>
if [ remove = "$1" ]; then
dpkg-divert --package smailwrapper --remove --rename \
--divert /usr/sbin/smail.real /usr/sbin/smail
fi
</example>
</p>
<p>
<!-- ORIG
Do not attempt to divert a file which is vitally important for
the system's operation - when using <prgn>dpkg-divert</prgn>
there is a time, after it has been diverted but before
<prgn>dpkg</prgn> has installed the new version, when the file
does not exist.</p>
ORIG -->
システムの運用に重要なファイルを退避しようとしないで下さい -
<prgn>dpkg-divert</prgn> の使用時には、ファイルの退避が
行われた後に <prgn>dpkg</prgn> が新しいバージョンを
インストールするまでの間、そのファイルが存在しない
タイミングがあるのです。</p>
</chapt>