5

配布したいクローズドソースの Linux アプリケーションがあります。このアプリケーションは wxWidgets/GTK を使用しているため、このアプリケーションが依存する共有ライブラリ (60 以上) の膨大なリストがあります。

アプリケーションを公開し、最大数のディストリビューションをサポートするには、どのような方法が望ましいですか?

  • サポートされているディストリビューションごとにアプリケーションをビルドし、個別に公開することですか? これにはビルドが複雑になるという欠点があり (chroot とディストリビューションごとのビルド)、サポートされているディストリビューションでのみ機能します。

  • インストーラーにすべての共有ライブラリーを追加し、それらを LD_LIBRARY_PATH 環境変数 (VMware など) で使用することですか? これには、インストーラーのサイズが大きくなるという欠点があります。

  • 完全に静的なアプリケーションを構築することですか? これは、一部のライセンスに違反するため、絶対に不可能です。

  • それまたは別のオプションの組み合わせですか?ほとんどの商用ベンダーは、独自のグラフィカル (できれば GTK ベースの) アプリケーションをどのように公開していますか?

4

3 に答える 3

4

Linux Standard Baseをご覧ください。あなたの立場にある人々を助けるために特別に設計されています。サードパーティのアプリケーション開発者が信頼できる環境を定義します。つまり、libc やその他のライブラリのバージョンが設定されており、特定のプログラムやディレクトリが既知の場所に存在します。主要な Linux ディストリビューションはすべて LSB をサポートしています。

とは言っても、顧客が使い慣れたパッケージ管理ツールでアプリを管理できるように、主要なディストリビューションごとに結果をパッケージ化する必要があります。

于 2009-10-01T10:57:06.427 に答える
3

基本的には、2 つの方法があります。必要に応じて、両方を選択できます。

最初の方法は、ゲームなどで一般的な方法です。lib/ サブディレクトリを作成し、LD_LIBARY_PATH必要なほぼすべての共有ライブラリを使用して含めます。これにより、ユーザーは簡単に操作できますが、インストーラーが大きくなり、おそらくメモリ フットプリントも大きくなります。システムにアップグレードが行われると、既存のライブラリが消える傾向があるため、既存のライブラリを再利用しようとさえしません。

2 つ目の方法は、配布パッケージを提供することです。これらは通常、作成するのはそれほど難しくなく、ディストリビューションとうまく統合され、さらに顧客にとってより歓迎されるように見えます。2 つの欠点は次のとおりです: ディストリビューションごとにこれを行う必要があります (Debian、Ubuntu、SuSE、redhat はおそらく良いスタートです)。特定のバージョンでは、依存関係の問題が発生します。

于 2009-10-01T08:32:58.000 に答える
2

インストーラーで、インストールされているライブラリを確認し、インストールされていないライブラリのバイナリをダウンロードします。

ユーザーの利便性をさらに高めるために、インターネットに接続していない場合は、Web サイトに入力してインストーラーにフィードできる ZIP アーカイブを受け取ることができるキーをインストーラーに生成させます。

最大限の快適さを得るために、ターゲット ディストリビューションで利用可能なライブラリを確認し、標準の管理ツールを使用してそれらをインストールするようにユーザーに依頼してください。そうすれば、同じライブラリの異なるバージョンでコンピューターが汚染されることはありません。

つまり、貴重なコードをリンク ライブラリに入れ、それをソース パッケージのバイナリ BLOB として提供する方が賢明かもしれません。このようにして、コードは純粋なバイナリの場合と同じように保護され、ユーザーは心配することなく、お気に入りのシステムでグルー コードをコンパイルできます。

つまり、UI を設定するコードの部分はどのくらいの価値がありますか? 誰かがそれを盗むと、あなたはいくら失うでしょうか?

于 2009-10-01T08:15:27.300 に答える