0

私は共有ライブラリの管理を学んでいます。グーグルは2つのメジャーバージョンとマイナーバージョンの数字に関する多くの情報を明らかにしていますが、私が見ているライブラリの多くは3桁です(例:libsqlite3.so.0.8.6)、3桁目は何ですか?

'期間'の言及があります:

...sonameのプレフィックスはlib'', the name of the library, the phrase.so''で、その後にピリオドとバージョン番号が続き、インターフェイスが変更されるたびに増分されます... http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries .html

しかし、私はこの期間の数字が何であるか、そしてそれが効果であるかについての説明を見つけることができませんか?

編集:

libsqlite3.so.0.8.6
              | | |
_What's this?_| | |
_Major__________| |
_Minor____________|
4

1 に答える 1

2

ネーミングに関するいくつかの会話を含む別のフォーラム(クイックGoogle検索)からのスレッドを次に示します。

スレッドから:

番号が 2 つある場合は、メジャー バージョンとマイナー バージョンがあります。libncursesw.so.5.6 には、メジャー バージョン 5 とマイナー バージョン 6 があります。理論的には、同じメジャー バージョンのマイナー バージョンは再コンパイルしなくても互換性があるため、libncursesw.so.5 にリンクされたプログラムは、バグ修正のために 5.7 にアップグレードしたとしても問題ありません。バージョン 4 を要求する古いプログラムがある場合、4.x ライブラリを 5.x ライブラリと一緒に安全にインストールでき、そのプログラム以外はそれを使用しません。

基本的に、命名規則により、ライブラリに対してリンクするプログラムには 3 つのレベルの互換性が許可されます。プログラムは、ライブラリ名自体、特定のメジャー番号、または特定の major.minor 番号に対してリンクすることを選択できます。これは、何が最も理にかなっているのかを決定するのは、実際にはアプリケーション開発者次第です。

一般的なメジャー番号のフォームは、通常、最新のメジャー.マイナー フォームにリンクしていることに注意してください。ライブラリには、必要に応じて追加のバージョン番号が含まれる場合があります (例: /lib/ld-linux.so)。バージョン番号は依然として左から右に進み、具体性が増しています。

于 2012-12-06T22:12:25.150 に答える