web-dev-qa-db-ja.com

.soファイルをパッケージに表示するにはどうすればよいですか?

今では多くの人が知っているように、私はパッケージを構築しています:)

PPAにアップロードできるように、完成に近づいていますが、まだ1つの小さな問題があります。それは、共有ライブラリ(.soファイル)がパッケージに入れたくないということです。

さて、これが私の制御ファイルにあるものです:

ソース:jsoncpp 
優先度:extra 
メンテナ:****** 
ビルド依存:debhelper(> = 7)
標準-バージョン:3.8.3 
セクション:libs 
ホームページ:http://jsoncpp.sf.net 
 
パッケージ:jsoncpp-dev 
セクション:libdevel 
アーキテクチャ:any 
依存:jsoncpp0(= $ {binary:Version})
説明:C++ 
のJSON解析ライブラリjsoncppはC++ライブラリですこれにより、
 JSONデータの読み取り/書き込みが簡単になります。
。
このパッケージには、jsoncpp。[.____を使用するアプリケーションを作成するために必要な
開発ツールが含まれています。 ] 
パッケージ:jsoncpp0 
セクション:libs 
アーキテクチャ:任意
依存:$ {shlibs:Depends}、$ {misc:Depends} 
説明:C++ 
用のJSON解析ライブラリjsoncppは、JSONデータの読み取り/書き込みを簡単に
できるC++ライブラリです。

これで、jsoncpp-devは正常にビルドされ、開発ファイルはパッケージに表示されますが、共有ライブラリはパッケージに表示されません。

これがjsoncpp0.dirsは次のようになります:

 usr/lib 

...そしてjsoncpp-dev.dirs

 usr/lib 
 usr/include 

更新されたMakefileは ここ です。

さらに詳しい情報が必要な場合はお知らせください。

1
Nathan Osman

これは私の側のかなり悪い間違いの結果でした。どういうわけかjsoncpp0.installjsoncpp0installに名前が変更されました(ピリオドなし)。

とにかく、それは今動作します。

0
Nathan Osman

Jsoncppが使用するビルドシステム(scons)を本当に使用したいのは、おそらくパッケージに合わせて調整されているからです。まず、使用しているパッケージ名の前にlibjsoncpp0などのlibを付ける必要があります(結果のファイルが/usr/lib/libjsoncpp.so.0であると想定)。ファイルをインストールするには、これらのファイルをにリストする必要があります。 .installファイル(例:debian/libjsoncpp0.install)には、適切なファイルをインストールするための/usr/lib/lib*.so.*があります。 libjsoncpp-devのファイルは、/ usr/include/*および/usr/lib/lib*.soにあります。

http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html のライブラリパッケージガイドは複雑になる可能性がありますが、ライブラリをパッケージ化して、DebianとUbuntuにうまく統合できるようにする正しい方法。

また、irc.ubuntu.comの#ubuntu-motuまたは#ubuntu-packagingで、質問に答えてくれる人がよくいます。

2
ajmitch