[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Packaging Manual 第12章



鍋谷です。

shayase@xxxxxxxxxxxxxxx (HAYASE Shigenori) writes:

> 早瀬です。Packaging Manual 第12章 です。
> チェックをよろしくお願いします。

お疲れ様です。

> <!-- ORIG
> 	Packages containing shared libraries must be constructed with
> 	a little care to make sure that the shared library is always
> 	available.  This is especially important for packages whose
> 	shared libraries are vitally important, such as the libc.
>  ORIG -->
> 	共有ライブラリを含むパッケージの場合、その共有ライブラリがつねに
> 	使用可能となるように多少の注意を払って作成しなければなりません。
> 	とりわけ、libc などの重要な共有ライブラリのときは特に重要です。

「vitally」が訳されていませんね。「システム運用に関わる重要な〜」
くらいでしょうか。

> <!-- ORIG
> 	<tt>libgdbm.so.1.7.3</tt>.  This is needed so that
> 	<prgn>ld.so</prgn> can find the library in between the time
> 	<prgn>dpkg</prgn> installs it and <prgn>ldconfig</prgn> is run
> 	in the <prgn>postinst</prgn> script.  Futhermore, and <em>this
> 	is very important</em>, the library must be placed before the
> 	symlink pointing to it in the <tt>.deb</tt> file.  This is so
> 	that by the time <prgn>dpkg</prgn> comes to install the
> 	symlink (overwriting the previous symlink pointing at an older
> 	version of the library) the new shared library is already in
> 	place.  
>  ORIG -->
> 	いなければいけません。これは、<prgn>dpkg</prgn> がパッケージを
> 	インストールする時と、<prgn>ldconfig</prgn> が postinst から
> 	実行されるときとの間に、<prgn>ld.so</prgn> が、そのライブラリを
> 	見つけることができるようにするためです。さらに、
> 	<em>これは重要なことですが</em>、ライブラリは、<tt>.deb</tt>
> 	ファイル中のシンボリックリンクがはられる前に置かれていなければ
> 	いけません。これは、<prgn>dpkg</prgn> が、すでに設置ずみの
> 	新しい共有ライブラリを指すシンボリックリンクをインストールする
> 	(古いバージョンのライブラリを指すシンボリックリンクを上書きします)
> 	ことが問題なく行われるためです。

これが必要なのは、<prgn>dpkg</prgn> がライブラリをインストールして
から postinst スクリプトで <prgn>ldconfig</prgn> が実行されるまで
の間に、<prgn>ld.so</prgn> がそのライブラリを見つけることができる
ようにするためです。更に、<em>これは重要なことですが</em>、
<tt>.deb</tt> ファイル中のライブラリは、それへのシンボリックリンク
より前に置かれていなければいけません。これにより、<prgn>dpkg</prgn>
が(古いバージョンのライブラリを指すシンボリックリンクを上書きする
ことによって)新しいシンボリックリンクをインストールする時点で、
新しい共有ライブラリが既に存在していることを保証します。

> <!-- ORIG
>       ...
> 	<tt>/usr/lib/libgdm.so</tt> to <tt>libgdm.so.1.7.3</tt>.  This
> 	symlink is needed by <prgn>ld</prgn> when compiling packages
> 	as it will only look for <tt>libgdm.so</tt> and
> 	<tt>libgdm.a</tt> when compiling dynamically or statically,
> 	respectively.
>  ORIG -->
> 	...
> 	このシンボリックリンクは、パッケージをコンパイルするときに、
> 	動的にリンクされるか静的にリンクされるかによって、
> 	<tt>libgdm.so</tt> か <tt>libgdm.a</tt> を、<prgn>ld</prgn>が
> 	探すことができるように必要となります。

このシンボリックリンクが必要となるのは、パッケージをコンパイルするときに
動的にリンクするか静的にリンクするかによって、<prgn>ld</prgn> は
<tt>libgdm.so</tt> か <tt>libgdm.a</tt> しか探さないからです。

> <!-- ORIG
>       id="unpackphase">), as <prgn>ldconfig</prgn> will see the temporary names
> 	that <prgn>dpkg</prgn> uses for the files while it is
> 	installing them and will make the shared library links point
> 	to them, just before <prgn>dpkg</prgn> continues the
> 	installation and removes the links!
>  ORIG -->
> 	それは、その場合には <prgn>dpkg</prgn> がインストール時に使う
> 	一時的なファイル名を <prgn>ldconfig</prgn> が見てしまい、
> 	それらへの共有ライブラリに対するリンクポイントを作ってしまう
> 	ためです。そして、その直後、<prgn>dpkg</prgn> はインストールを
> 	続行し、そのリンク先を削除してしまいます !

# 「point to」は動詞です。
# 最後の一文は本当なのでしょうか?

> <!-- ORIG
> 	  This file is for use by <prgn>dpkg-shlibdeps</prgn> and is
> 	  required when your package provides shared libraries.
>  ORIG -->
> 	  このファイルは、<prgn>dpkg-shlibdeps</prgn> によって使用され、
> 	  パッケージが共有ライブラリをインストールするときに必要と
> 	  なります。

このファイルは、<prgn>dpkg-shlibdeps</prgn> によって使用され、
共有ライブラリを含むパッケージを提供する場合は必須です。

# メンテナーは「このファイル」を用意しなければならない、ということ。

> <!-- ORIG
> 	  <var>version-or-soname</var> is the soname of the library -
> 	  ie, the thing that must exactly match for the library to be
> 	  recognised by <prgn>ld.so</prgn>.
>  ORIG -->
> 	  <var>version-or-soname</var> は、ライブラリの
> 	  .so ファイル名です。これは、<prgn>ld.so</prgn> によって
> 	  認識されるためのライブラリと正確に一致していなければ
> 	  いけません。

このライブラリが <prgn>ld.so</prgn> によって認識されるためには、
厳密に一致していなければいけません。

> <!-- ORIG
> 	  <var>dependencies</var> has the same syntax as a dependency
> 	  field in a binary package control file.  It should give
> 	  details of which package(s) are required to satisfy a binary
> 	  built against the version of the library contained in the
> 	  package.
>  ORIG -->
> 	  <var>dependencies</var> は、バイナリパッケージ制御ファイル中の
> 	  dependency フィールドと同じ書式です。これは、パッケージに
> 	  含まれるライブラリのバージョンに対してバイナリを構築した
> 	  ときに、どのパッケージが必要とされるのか、詳細を
> 	  記してあります。

そのパッケージに含まれるライブラリで構築したバイナリが動作する
ために必要なパッケージの詳細が記述されていなければなりません。

> <!-- ORIG
> 	<sect1><heading><em>What</em> are the <tt>shlibs</tt> files?
>  ORIG -->
> 	<sect1><heading><tt>shlibs</tt> ふぁいるとは<em>何か</em> ?

「ふぁいる」->「ファイル」

> <!-- ORIG
> 	    The <tt>debian/shlibs</tt> file provides a way of checking
> 	    for shared library dependencies on packaged binaries.
> 	    They are intended to be used by package maintainers to
> 	    make their lives easier.
>  ORIG -->
> 	    バイナリパッケージの共有ライブラリへの依存性のチェックを
> 	    行うとき、<tt>debian/shlibs</tt> ファイルを用いて行うことが
> 	    できます。これを使えば、パッケージメンテナは、より快適な
> 	    生活が送れるでしょう。

<tt>debian/shlibs</tt> ファイルは、パッケージ化されたバイナリがどの
共有ライブラリに依存しているか調べる方法を提供します。このファイル
を使用する目的は、パッケージメンテナが自分の作業を楽にすることにあり
ます。

> <!-- ORIG
> 		<p><tt>/etc/dpkg/shlibs.default</tt> - the maintainer
> 		  of dpkg</p>
>  ORIG -->
> 		<p><tt>/etc/dpkg/shlibs.default</tt> - dpkg の管理者</p>

> <!-- ORIG
> 		  - the maintainer of each package</p>
>  ORIG -->
> 		  - それぞれのパッケージ開発者</p>

「maintainer = メンテナ or 開発者」で統一しましょう。
-- 
大阪大学理学研究科物理学専攻 博士後期課程2年 大坪研究室(06-6850-5346)
         鍋谷 栄展      nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxx