共有ライブラリに対して可能な限り多くのディストリビューションで機能するバイナリをリンクする場合、どのLinuxディストリビューションが最適であるか(つまり、依存関係が最も少ないか)疑問に思っています。
私はUbuntuでそれを行いましたが、依存関係のリストはひどいものです。SDLはPulseAudioなどを紹介します。私の次の推測は、Debian lennyを使用することです-あなたの意見では、そのための最良のディストリビューションは何ですか?
共有ライブラリに対して可能な限り多くのディストリビューションで機能するバイナリをリンクする場合、どのLinuxディストリビューションが最適であるか(つまり、依存関係が最も少ないか)疑問に思っています。
私はUbuntuでそれを行いましたが、依存関係のリストはひどいものです。SDLはPulseAudioなどを紹介します。私の次の推測は、Debian lennyを使用することです-あなたの意見では、そのための最良のディストリビューションは何ですか?
ソースをリリースし、インストールスクリプトを使用してターゲットシステムでコンパイルしたくない場合は、静的にリンクされたすべてのものを提供するか、実行可能ファイルの起動に使用されるスクリプトでファイルと使用LD_LIBRARY_PATH
およびLD_PRELOAD
環境変数を独自に出荷します。(それがどのように行われるかの例は、mozilla firefoxパッケージで見ることができます)
法的な問題も適用されます。GPLコードは絶対に使用しないでください。また、(他の問題の中でも)LGPLコードに対して静的にリンクしないでください。
他の解決策は、幸運にも不運にも余りにも多くの余地を残し、欲求不満を生み出すだけです。
Linux 用のソフトウェアを作成する正しい方法は、リリースごとに 1 つのソース コードの tarball を Web サイトの安定した場所に置き、ディストリビューションに他のすべてを処理させることです。自分でバイナリを作成しようとしないでください。終わりのない悲しみから身を守ることができます。
私の記憶が正しければ、SDL 依存関係として pulseaudio を持つ 1 つのディストリビューションで SDL にリンクしても、すべてのディストリビューションでプログラムを常に pulseaudio にリンクする必要があるわけではありません。実際には-lpulseaudio
、コンパイル行に を入れる必要はありませんよね? sdl-config --libs
私のUbuntuボックスにはリストされていません。
QT ドキュメントのhttp://doc.trolltech.com/4.6/deployment-x11.htmlセクション「アプリケーション パッケージの作成」を見ると、Mac バンドルのようなパッケージを作成し、それを起動するシェル スクリプトを使用することが提案されています。
同じことができます。必要なライブラリを作成してパッケージに含める必要がありますが、残念ながらサイズが大きくなります。少なくともこれにより、必要なライブラリにのみリンクするように促されるはずです:)