ライブラリバージョン、APIバージョン、およびsoname:名前をどのように指定する必要がありますか?

ライブラリバージョン、APIバージョン、およびsoname:名前をどのように指定する必要がありますか?

libfoo次のライブラリがあるとしましょう。

  • そのバージョンは0.4.2
  • 0.4APIバージョンはどこにありますか?
  • 2新しいAPI機能を追加できるバージョン番号。

sonameはでなければなりませんかlibfoo.so.0.4libfoo.so.0.4.2それとも別のものですか?

ベストアンサー1

APIバージョンが0.4他のバージョンと互換性がない場合は、0.*sonameをに設定する必要がありますlibfoo.so.0.4。実際、sonameはどんな文字列でもかまいません。実行可能ファイルがロードされたら、システムで適切な共有ライブラリを見つけます。

多くのパッケージ(またはディストリビューション)はあなたとは異なる命名スキームに従います。たとえば、0.4.2apiを含むlibfooのバージョンはsonameに0.4なります。libfoo.so.4.2libfoo.4

インターフェイスに主な変更が適用されたら、あちこちで問題を再コンパイルして修正する必要があるだけでなく、ライブラリの名前を変更して「メイン」メジャーバージョンを呼び出すようにライブラリを使用してコードを再構築する必要があります。その後、バージョンがlibfoo.4.2libfoo-1.so.0.10.4.21.0.1

このシナリオを使用すると、一部の古いソフトウェアがまったく新しい API で書き換えられなかった場合に、複数のバージョンのライブラリを簡単にインストールできます。

おすすめ記事