私はQtソフトウェアのためのLinuxリリースをしようとしていますが、私は無頓着なLinux初心者です。静的にリンクされたQtライブラリを使ってアプリケーションをビルドし、.debと.rpmパッケージを作成しましたが、私がそれらをテストすると、いくつかのディストリビューションでライブラリが見つからないという警告が表示されます。たとえば、私の.debのバージョンはDebianとUbuntu上で正常に動作しますが、ライブラリがないためにLinux Mint KDEで起動しません。明らかに、私はしかし、必要なライブラリの一覧が異なるようですが、何とかすべての必要なライブラリが存在していることを確認する必要がありLinuxでソフトウェアを配布する場合のライブラリ依存関係
libpng16.so.16 => not found
libicui18n.so.57 => not found
libicuuc.so.57 => not found
libicudata.so.57 => not found
:私は見つけるのlddを実行している4つの欠落しているライブラリがあります。たとえば、Linux Mint Cinnamonは33個のライブラリを、Ubuntu Unityは34個をリストします(libpng12.so.0は余分なものです)。私はまた、それらのライブラリのいくつかはすべてのディストリビューションに付属する標準的なLinuxライブラリであると仮定し、それらを含める必要はありません。
私は本当に私がやっているか知っているので、いくつかの質問はありません:
私は私の.debと.rpmのパッケージに含める必要があるライブラリのリストを決定するための最良の方法は何ですか? lddが最善の選択肢であれば、リストされたすべてのライブラリを含める必要がありますか、またはすべてのDebian/rpmディストリビューションに標準でバンドルされているものがありますか?
これらのライブラリを含める最も良い方法は何ですか?それらをパッケージに含めるか依存関係リストに指定しますか?
他の一般的なアドバイスは、私がこれについて正しいことをしているかどうかはわからないので、評価してください。
ありがとうございました。
また、パッケージに適切な依存関係を追加しましたか?あなたは本当に、あなたが持っているすべての依存関係を "標準"または "システム"のパッケージであってもリストするべきです。 –
異なるLinuxディストリビューションには異なるライブラリがあります。 Fedora上に構築されたrpmは、CentOSまたはRHELにインストールされる可能性は低く、その逆もありません。 debのために同上。 Linux上でコードを配布する唯一の現実的な方法は、ソースコードです。それがLinuxのために設計されたものです。フリーソフトウェアは、ソースコードとして配布されています。バイナリABIは一般に下位互換性があるため、後でインストールする必要がありますが、同じLinuxディストリビューションでのみインストールする必要があります。 –
https://stackoverflow.com/a/33837854/412080 –