[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Packaging Manual chap.2
早瀬です。Packaging Manual 第2章です。
version 2.4.1.0 -> 3.0.0.0 の変更点は、
2.4 節 タイムスタンプ
の追加です。よろしくお願いします。
P.S.
私が debiandoc2html でつくる html の体裁が、original なものと
違います。例えば、私がやると、index.html に abstract が出てきますが、
original にはありません。私は slink な環境で
ii debiandoc-sgml 1.1.12 Documentation formatting for Debian manuals
を使っているので、potato の物を使えばいいのかなあ、とも思うのですが、
このツールって、LANG を見てるので、potato の debiandoc-sgml は
slink では動かなそうですね。
最悪な場合、翻訳者 != パッケージメンテナ でしょうか?
--
早瀬 茂規 (shayase@xxxxxxxxxxxxxxx)
<!-- ORIG
<chapt id="binarypkg"><heading>Binary packages
ORIG -->
<chapt id="binarypkg"><heading>バイナリーパッケージ
</heading>
<p>
<!-- ORIG
The binary package has two main sections. The first part
consists of various control information files and scripts used
by <prgn>dpkg</prgn> when installing and removing. See <ref
id="controlarea">.
ORIG -->
バイナリーパッケージは2つの部分からなります。
最初の部分には <prgn>dpkg</prgn> がインストールや削除に使う
様々な管理情報ファイルやスクリプトが入っています。
<ref id="controlarea"> を見てください。
</p>
<p>
<!-- ORIG
The second part is an archive containing the files and
directories to be installed.
ORIG -->
2つめの部分はインストールされるファイルやディレクトリを含んだ
アーカイブです。
</p>
<p>
<!-- ORIG
In the future binary packages may also contain other
components, such as checksums and digital signatures. The
format for the archive is described in full in the
<tt>deb(5)</tt> manpage.
ORIG -->
将来、他にもチェックサムや電子署名などがバイナリーパッケージに
含まれるようになるでしょう。
アーカイブのフォーマットについては <tt>deb(5)</tt> の
manpage に完全な記述があります。
</p>
<!-- ORIG
<sect id="bincreating"><heading>Creating package files -
ORIG -->
<sect id="bincreating"><heading>パッケージファイルの作成 -
<prgn>dpkg-deb</prgn>
</heading>
<p>
<!-- ORIG
All manipulation of binary package files is done by
<prgn>dpkg-deb</prgn>; it's the only program that has
knowledge of the format. (<prgn>dpkg-deb</prgn> may be
invoked by calling <prgn>dpkg</prgn>, as <prgn>dpkg</prgn>
will spot that the options requested are appropriate to
<prgn>dpkg-deb</prgn> and invoke that instead with the same
arguments.)
ORIG -->
バイナリーパッケージファイルの操作はすべて
<prgn>dpkg-deb</prgn> によって行います。
<prgn>dpkg-deb</prgn> はパッケージフォーマットを
理解する唯一のプログラムです。
(<prgn>dpkg-deb</prgn> は <prgn>dpkg</prgn> に呼び出されます。
<prgn>dpkg</prgn> は依頼されたオプションが
<prgn>dpkg-deb</prgn> に適切であるかを見分け、同じ引数で
代わりに <prgn>dpkg-deb</prgn> を呼び出します。)
</p>
<p>
<!-- ORIG
In order to create a binary package you must make a
directory tree which contains all the files and directories
you want to have in the filesystem data part of the package.
In Debian-format source packages this directory is usually
<tt>debian/tmp</tt>, relative to the top of the package's
source tree.
ORIG -->
バイナリーパッケージを作るためにはパッケージの
ファイルシステムデータ部分に入れたいファイルやディレクトリを
全て含むディレクトリツリーを作らなければなりません。
Debianフォーマットのソースパッケージでは、このディレクトリは
通常はパッケージのソースツリーのトップからの相対パスで
<tt>debian/tmp</tt> です。
</p>
<p>
<!-- ORIG
They should have the locations (relative to the root of the
directory tree you're constructing) ownerships and
permissions which you want them to have on the system when
they are installed.
ORIG -->
<!-- VERSION 2.4.1.0
これらのファイルやディレクトリは、インストールされた時に
あなたが望むようなシステム上での
(あなたが作るディレクトリツリーのルートとの相対での)場所と
所有者と許可属性を持っていなければなりません。
VERSION 2.4.1.0 -->
これらのファイルやディレクトリがインストールされる時には、
あなたの作ったディレクトリツリーのトップからの相対位置で、
システムのルートにインストールされ、
所有者と許可属性はそのまま保持されます。
</p>
<p>
<!-- ORIG
With current versions of <prgn>dpkg</prgn> the uid/username
and gid/groupname mappings for the users and groups being
used should be the same on the system where the package is
built and the one where it is installed.
ORIG -->
現在のバージョンの <prgn>dpkg</prgn> では、
ユーザーとグループに用いる uid/username、gid/groupname の
対応はパッケージが作られたシステムと
インストールされるシステムとで同じにするべきです。
</p>
<p>
<!-- ORIG
You need to add one special directory to the root of the
miniature filesystem tree you're creating:
<prgn>DEBIAN</prgn>. It should contain the control
information files, notably the binary package control file
(see <ref id="controlfile">).
ORIG -->
あなたが作るミニチュアファイルシステムのルートに
<prgn>DEBIAN</prgn> という特別なディレクトリを
追加しなければなりません。そこには管理情報ファイル、
特にバイナリーパッケージ管理ファイルが含まれます
(<ref id="controlfile"> を見て下さい)。
</p>
<p>
<!-- ORIG
The <prgn>DEBIAN</prgn> directory will not appear in the
filesystem archive of the package, and so won't be installed
by <prgn>dpkg</prgn> when the package is installed.
ORIG -->
<prgn>DEBIAN</prgn> ディレクトリはパッケージの
ファイルシステムアーカイブには入れられません。
よって、 <prgn>dpkg</prgn> によってパッケージが
インストールされる時にはインストールされません。
</p>
<p>
<!-- ORIG
When you've prepared the package, you should invoke:
ORIG -->
パッケージの用意をしたら次のようにします。
<example>
dpkg --build <var>directory</var>
</example>
</p>
<p>
<!-- ORIG
This will build the package in
<tt><var>directory</var>.deb</tt>. (<prgn>dpkg</prgn> knows
that <tt>−build</tt> is a <prgn>dpkg-deb</prgn> option, so
it invokes <prgn>dpkg-deb</prgn> with the same arguments to
build the package.)
ORIG -->
これにより <tt><var>directory</var>.deb</tt> に
パッケージが構築されます。
(<prgn>dpkg</prgn> は <tt>--build</tt> が
<prgn>dpkg-deb</prgn> のオプションであることを知っているため、
パッケージを構築するために
<prgn>dpkg-deb</prgn> を同じオプションで起動します。)
</p>
<p>
<!-- ORIG
See the manpage <manref name="dpkg-deb" section="8"> for details of how
to examine the contents of this newly-created file. You may find the
output of following commands enlightening:
ORIG -->
新しく作られたファイルの中身を調べる方法についての詳細は
manpage の <manref name="dpkg-deb" section="8"> を見てください。
次のコマンドの出力から得られることがわかるでしょう。
<example>
dpkg-deb --info <var>filename</var>.deb
dpkg-deb --contents <var>filename</var>.deb
dpkg --contents <var>filename</var>.deb
</example>
<!-- ORIG
To view the copyright file for a package you could use this command:
ORIG -->
パッケージの著作権ファイルを見るには次のコマンドが使用できます。
<example>
dpkg --fsys-tarfile <var>filename</var>.deb | tar xof usr/doc/<var>\*</var>copyright | less
</example>
</p>
</sect>
<sect id="controlarea">
<heading>
<!-- ORIG
Package control information files
ORIG -->
パッケージ管理情報ファイル
</heading>
<p>
<!-- ORIG
The control information portion of a binary package is a
collection of files with names known to <prgn>dpkg</prgn>.
It will treat the contents of these files specially - some
of them contain information used by <prgn>dpkg</prgn> when
installing or removing the package; others are scripts which
the package maintainer wants <prgn>dpkg</prgn> to run.
ORIG -->
バイナリーパッケージの管理情報部は <prgn>dpkg</prgn> が
理解できる名前を持ったファイルの集合です。
これらのファイルの内容は <prgn>dpkg</prgn> に特別に
扱われます。
- ファイルの内容がパッケージのインストールや削除の時に
<prgn>dpkg</prgn> に使われるものであったり、
パッケージ管理者が <prgn>dpkg</prgn> に実行させたい
スクリプトであったりします。
</p>
<p>
<!-- ORIG
It is possible to put other files in the package control
area, but this is not generally a good idea (though they
will largely be ignored).
ORIG -->
パッケージ管理エリアにそれ以外のファイルを入れても
構いませんが、あまりいいアイデアではありません
(もっとも、それらは一般に無視されますが)。
</p>
<p>
<!-- ORIG
Here is a brief list of the control info files supported by
<prgn>dpkg</prgn> and a summary of what they're used for.
ORIG -->
ここで、<prgn>dpkg</prgn> がサポートする管理情報ファイルの
簡単なリストとそれらが何に使われるかについての概要を
挙げておきます。
</p>
<p>
<taglist>
<tag><tt>control</tt>
<item>
<p>
<!-- ORIG
This is the key description file used by
<prgn>dpkg</prgn>. It specifies the package's name
and version, gives its description for the user,
states its relationships with other packages, and so
forth. See <ref id="controlfile">.
ORIG -->
このファイルには <prgn>dpkg</prgn> が使う鍵となる
情報が書かれています。このファイルにより
パッケージ名とバージョンの指定や、パッケージに関する
説明のユーザーへの提供、他のパッケージとの関連の
指定などを行ないます。
<ref id="controlfile"> を見て下さい。
</p>
<p>
<!-- ORIG
It is usually generated automatically from information
in the source package by the
<prgn>dpkg-gencontrol</prgn> program, and with
assistance from <prgn>dpkg-shlibdeps</prgn>. See <ref
id="sourcetools">.</p>
ORIG -->
このファイルは通常 <prgn>dpkg-shlibdeps</prgn> の助けを
借りてソースパッケージ内の情報から
<prgn>dpkg-gencontrol</prgn> によって自動的に
作られます。
<ref id="sourcetools"> を見て下さい。</p>
</item>
<tag><tt>postinst</tt>, <tt>preinst</tt>, <tt>postrm</tt>,
<tt>prerm</tt>
</tag>
<item>
<p>
<!-- ORIG
These are exectuable files (usually scripts) which
<prgn>dpkg</prgn> runs during installation, upgrade
and removal of packages. They allow the package to
deal with matters which are particular to that package
or require more complicated processing than that
provided by <prgn>dpkg</prgn>. Details of when and
how they are called are in <ref
id="maintainerscripts">.
ORIG -->
これらは <prgn>dpkg</prgn> が、パッケージの
インストール、アップグレード、削除の時に起動する
実行可能なファイル(通常はスクリプト)です。
これらのファイルにより、パッケージがパッケージに特有の
事柄を扱ったり、<prgn>dpkg</prgn> が提供するよりも
より複雑な処理を要求することが可能になります。
これらのファイルが、いつ、どの様に呼び出されるかに
ついての詳細は
<ref id="maintainerscripts"> にあります。
</p>
<p>
<!-- ORIG
It is very important to make these scripts
idempotent.
<footnote>
<p>
That means that if it runs successfully or fails
and then you call it again it doesn't bomb out,
but just ensures that everything is the way it
ought to be.
</p>
</footnote> This is so that if an error occurs, the
user interrupts <prgn>dpkg</prgn> or some other
unforeseen circumstance happens you don't leave the
user with a badly-broken package.
ORIG -->
これらのスクリプトを idempotent にする
<footnote>
<p>
つまり、そのスクリプトの実行が成功しても、
失敗しても、そのスクリプトが再び呼び出された時に
暴走せず、ただ、全てが正しく動作するいうことです。
</p>
</footnote>
のは非常に重要なことです。もしエラーが起きて
ユーザーが <prgn>dpkg</prgn> を中止したり、
その他の予期できない事象が起きても、パッケージが
ひどく壊れたままになることはありません。
</p>
<p>
<!-- ORIG
The maintainer scripts are guaranteed to run with a
controlling terminal and can interact with the user.
If they need to prompt for passwords, do full-screen
interaction or something similar you should do these
things to and from <tt>/dev/tty</tt>, since
<prgn>dpkg</prgn> will at some point redirect scripts'
standard input and output so that it can log the
installation process. Likewise, because these scripts
may be executed with standard output redirected into a
pipe for logging purposes, Perl scripts should set
unbuffered output by setting <tt>$|=1</tt> so that the
output is printed immediately rather than being
buffered.
ORIG -->
メンテナンススクリプトは制御端末で実行されることが
保証されており、ユーザーと対話することができます。
もしパスワードのプロンプトを出す場合は、
<prgn>dpkg</prgn> はインストールの過程のログを
とるためにスクリプトの標準入出力を同じところに
リダイレクトするので <tt>/dev/tty</tt> を通じて
フルスクリーンによる対話もしくは同様のことを
行なわなければなりません。
同様に、これらのスクリプトは、ログをとるプロセスへの
パイプに標準出力をリダイレクトした状態で
実行される。そのため、出力がバッファリングされずにすぐに
表示されるようにする為に Perl スクリプトは
<tt>$|=1</tt> とセットして出力をバッファリングしない
ようにするべきです。
</p>
<p>
<!-- ORIG
Each script should return a zero exit status for
success, or a nonzero one for failure.</p>
ORIG -->
いずれのスクリプトも成功した場合には 0 、
失敗した場合には 0 以外を終了時の値として
返さなくてはなりません。</p>
</item>
<tag><tt>conffiles</tt>
</tag>
<item>
<p>
<!-- ORIG
This file contains a list of configuration files which
are to be handled automatically by <prgn>dpkg</prgn>
(see <ref id="conffiles">). Note that not necessarily
every configuration file should be listed here.</p>
ORIG -->
このファイルには <prgn>dpkg</prgn> により自動的に
扱われなければならない設定ファイルのリストが含まれます
(<ref id="conffiles"> を参照)。
すべての設定ファイルをここに書く必要はないことに
注意して下さい。</p>
</item>
<tag><tt>shlibs</tt>
</tag>
<item>
<p>
<!-- ORIG
This file contains a list of the shared libraries
supplied by the package, with dependency details for
each. This is used by <prgn>dpkg-shlibdeps</prgn>
when it determines what dependencies are required in a
package control file. The <tt>shlibs</tt> file format
is described on <ref id="shlibs">.
ORIG -->
このファイルにはパッケージが提供する共有ライブラリの
リストが、それぞれの依存関係の詳細と共に含まれます。
このファイルは <prgn>dpkg-shlibdeps</prgn> が
パッケージコントロールファイルで、どの依存関係が
必要かを決める時に使用します。
<tt>shlibs</tt> ファイルの書式については
<ref id="shlibs"> に記述があります。
</p>
</item>
</taglist>
</p>
<sect id="controlfile">
<heading>
<!-- ORIG
The main control information file: <tt>control</tt>
ORIG -->
メイン管理情報ファイル: <tt>control</tt>
</heading>
<p>
<!-- ORIG
The most important control information file used by
<prgn>dpkg</prgn> when it installs a package is
<tt>control</tt>. It contains all the package's `vital
statistics'.
ORIG -->
<prgn>dpkg</prgn> がパッケージをインストールする時に使う
もっとも重要な管理情報ファイルが <tt>control</tt> です。
このファイルはパッケージの`人口動態統計'をすべて
含んでいます。
</p>
<p>
<!-- ORIG
The binary package control files of packages built from
Debian sources are made by a special tool,
<prgn>dpkg-gencontrol</prgn>, which reads
<tt>debian/control</tt> and <tt>debian/changelog</tt> to
find the information it needs. See <ref id="sourcepkg"> for
more details.
ORIG -->
Debian ソースから作られたパッケージのバイナリーパッケージ
管理ファイルは <prgn>dpkg-gencontrol</prgn> という特別な
ツールで作られます。このツールは <tt>debian/control</tt> と
<tt>debian/changelog</tt>から必要な情報を捜し出します。
詳細は <ref id="sourcepkg"> を見て下さい。
</p>
<p>
<!-- ORIG
The fields in binary package control files are:
ORIG -->
バイナリーパッケージ管理ファイルの fields は:
<list compact="compact">
<item>
<p><qref id="f-Package"><tt>Package</tt></qref> (mandatory)</p>
</item>
<item>
<p><qref id="versions"><tt>Version</tt></qref> (mandatory)</p>
</item>
<item><p><qref id="f-Architecture"><tt>Architecture</tt></qref>
(mandatory)
<footnote>
<p>
<!-- ORIG
This field should appear in all packages, though
<prgn>dpkg</prgn> doesn't require it yet so that
old packages can still be installed.
ORIG -->
この Architecture フィールドは、全てのパッケージに
存在しなければ なりません。ただし、今のところ
<prgn>dpkg</prgn> は、 古いパッケージも
インストールできるように、Architecture フィールドを
要求しません。
</p>
</footnote>
</p>
</item>
<item>
<p><qref id="relationships"><tt>Depends</tt>,
<tt>Provides</tt> et al.</qref></p>
</item>
<item>
<p><qref id="f-Essential"><tt>Essential</tt></qref></p>
</item>
<item>
<p><qref id="f-Maintainer"><tt>Maintainer</tt></qref></p>
</item>
<item>
<p><qref id="f-classification"><tt>Section</tt>,
<tt>Priority</tt></qref></p>
</item>
<item>
<p><qref id="f-Source"><tt>Source</tt></qref></p>
</item>
<item>
<p><qref id="descriptions"><tt>Description</tt></qref></p>
</item>
<item>
<p>
<qref id="f-Installed-Size"><tt>Installed-Size</tt></qref>
</p>
</item>
</list>
<p>
<!-- ORIG
A description of the syntax of control files and the purpose
of these fields is available in <ref id="controlfields">.
ORIG -->
管理ファイルの文法とこれらのフィールドの目的についての記述は
<ref id="controlfields"> で得られます。
</p>
</sect>
<sect>
<!-- ORIG
<heading>Time Stamps</heading>
ORIG -->
<heading>タイムスタンプ</heading>
<p>
<!-- ORIG
Maintainers are encouraged to preserve the modification
times of the upstream source files in a package, as far as
is reasonably possible.
ORIG -->
パッケージのアップストリームのソースファイルの
タイムスタンプが変更された場合には、可能な限り
タイムスタンプを保持するよう、パッケージ管理者に
勧められています。
<footnote>
<p>
<!-- ORIG
The rationale is that there is some information conveyed
by knowing the age of the file, for example, you could
recognize that some documentation is very old by looking
at the modification time, so it would be nice if the
modification time of the upstream source would be
preserved.
ORIG -->
タイムスタンプを保持する根拠は、ファイルの作成時間を
知ることによって伝わる情報があるからです。例えば、
ある文書の修正時間を見ることによって、それが非常に
古いものであるのかどうかを判断することができます。
ですから、アップストリームのソースの修正時間を
保持しておくのはとても良いことです。
</p>
</footnote>
</p>
</sect>
<!-- vvv ADD vvv -->
</chapt>
<!-- ^^^ ADD ^^^ -->