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

Re: Packaging Manual ch-sharedlibs, chap12



かねこ@ひたちです。
At 21:00 5/16/98, Katsura S. Yoshio wrote:
> <!--
> Packages containing shared libraries must be constructed with a little
> care to make sure that the shared library is always available.
> -->
>
> 共有ライブラリを含むパッケージの場合、その共有ライブラリがつねに使用可能
> かどうかに注意します。

「その共有ライブラリがつねに使用可能となるように多少の注意を払って
作成しなければなりません。」

> <!--
><kbd>dpkg</kbd> will take care of renaming things safely without
> affecting running programs, and attempts to interfere with this are
> likely to lead to problems.<P>
> -->
<kbd>dpkg</kbd> は、実行中のプログラムに影響がないよう
に、注意してファイル名の変更などの作業を実行しますし,これと競合する
ような処理は,おそらく問題を起こすでしょう。

> <!--
> Any package installing shared libraries in a directory that's listed in
> <code>/etc/ld.so.conf</code> or in one of the default library
> directories of <kbd>ld.so</kbd> (currently, these are
> <code>/usr/lib</code> and <code>/lib</code>) must call
> <kbd>ldconfig</kbd> in its <kbd>postinst</kbd> script if and only if the
> first argument is `configure'. However, it is important not to call
> <kbd>ldconfig</kbd> in the postrm or preinst scripts in the case where
> the package is being upgraded (see <A
> href="ch-maintainerscripts.html#s-unpackphase">Details of unpack phase
> of installation or upgrade, section 6.3</A>), as <kbd>ldconfig</kbd>
> will see the temporary names that <kbd>dpkg</kbd> uses for the files
> while it is installing them and will make the shared library links point
> to them, just before <kbd>dpkg</kbd> continues the installation and
> removes the links!<P>
> -->
>
> 共有ライブラリを含むすべてのパッケージは、<code>/etc/ld.so.conf</code>
> に書かれてあるディレクトリか、<kbd>ld.so</kbd> によるデフォルトの検索ディ
> レクトリ(現在のところ、<code>/usr/lib</code> と <code>/lib</code> です)
> にインストールしなければいけません。また、最初の引数が confiugre であっ
> たときは、postinst スクリプトの中から<kbd>ldconfig</kbd> を呼出さなけれ
> ばいけません。けれども、パッケージの更新作業中に postrm や preinst スク
> リプトから <kbd>ldconfig</kbd> を呼出してはいけません ( <A
> href="ch-maintainerscripts.html#s-unpackphase">Details of unpack phase
> of installation or upgrade, section 6.3</A> をごらんください)。
> <kbd>dpkg</kbd> がインストール中のファイルに対して使う一時的な名前を
> <kbd>ldconfig</kbd> が参照できなければいけません。
> <kbd>dpkg</kbd> は、リンクを削除してインストールを続行するまえに、
> それらへの共有ライブラリに対するリンクポイントをつくります。<p>

共有ライブラリを,<code>/etc/ld.so.conf</code>に書かれてあるディレ
クトリか、<kbd>ld.so</kbd> によるデフォルトの検索ディレクトリ(現在
のところ、<code>/usr/lib</code> と <code>/lib</code> です)の何れか
にインストールするパッケージは,最初の引数が configure であったと
き,かつそのときのみ postinst スクリプトの中で ldconfig を呼ばなけ
ればなりません。けれども、パッケージの更新作業中に postrm や preinst スク
リプトから <kbd>ldconfig</kbd> を呼出してはいけません。(中略)
それは,その場合には ldconfig が dpkg がインストール時に使う一時的
なファイル名を見てしまい,それらへの共有ライブラリに対するリンクポ
イントをつくってしまうためです。そして,その直後,dpkg はインスト
ールを続行し,そのリンク先を削除してしまいます !

> <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
> <kbd>ld.so</kbd>.  Usually this is major version number of the library.<P>
> -->
>
> <var>version-or-soname</var> は、ライブラリの .so のつく名前です。これは、
> <kbd>ld.so</kbd> によって認識されるためのライブラリと正確に一致していな
> ければいけません。ふつうは、ライブラリのメジャーバージョン番号です。<p>

soname のままにするしかないような気がする。あるいは「共有ライブ
ラリ識別名」などの新語をつくるか。

> <!--
> The version-specific dependency is to avoid warnings from <kbd>ld.so</kbd>
> about using older shared libraries with newer binaries.
> -->
>
> 特定のバージョン番号への依存関係は、古いバージョンの共有ライブラリで用い
> て、新しいバイナリを実行しようとした際に、 <kbd>ld.so</kbd> が出力するウォー
> ニングを回避するのに役立ちます。

特定のバージョン番号への依存関係は、古いバージョンの共有ライブラリで
新しいバイナリを実行しようとした際に、<kbd>ld.so</kbd> が出力する…

#原文が何のことだか,なんとなくピンとこない。


--
Seiji Kaneko                              seiji@xxxxxxxxxxxxxxxxxxx
-------------------------------------------------------------------