複数の Linux ディストリビューション向けにバイナリ専用アプリケーションを公開する場合に推奨される方法は何ですか?

StackOverflow https://stackoverflow.com/questions/1502543

質問

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

アプリケーションを公開し、最大数のディストリビューションをサポートするための推奨される方法は何ですか?

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

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

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

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

役に立ちましたか?

解決

あなたは Linuxの標準ベースののを見ている必要があります。あなたの立場に人々を助けるために特別に設計されています。これは、サードパーティのアプリケーション開発者が依存できるような環境を定義します - ので、そこのlibcや他のライブラリのバージョンを設定し、特定のプログラムやディレクトリは、既知の場所に住んでいます。メインのLinuxディストリビューションのサポートのすべてのLSBます。

、あなたはおそらくまだ各主要配信のために特別に結果をパッケージ化する必要があると述べたこと - 。あなたの顧客が使い慣れたパッケージ管理ツールを使ってアプリを管理できるだけのように、

他のヒント

この基本的には、2つの方法があります。ご希望の場合は、両方を選ぶことができます。

この最初の方法は、ゲームやそのようなものがそれを行う一般的な方法です。 lib /サブディレクトリを作成し、LD_LIBARY_PATHを使用して、必要なほぼすべての共有ライブラリが含まれています。それは、ユーザーからの痛みのない経験を保証しますが、同様に大きなインストーラが大きく、おそらくメモリフットプリント作るん。アップグレードがシステムに行われると、彼らが消える傾向があるように私はしても、既存のライブラリを再利用しようとしないでしょう。

この第二の方法は、配布パッケージを提供することです。これらは一般的に作ることは困難ではありませんし、その後のディストリビューションとうまく統合し、さらに顧客に、より多くの歓迎だと思われます。 2つの欠点があります:あなたは、各ディストリビューションのためにこれを行う必要があります(Debianのは、Ubuntu、SuSEの、RedHatのは、おそらく良いスタートです)、そしてあなたはそれらを維持する必要があります。時間が経つにつれて、いくつかのライブラリが利用できなくなります特定のバージョンでは、これによりユーザーは、依存関係の問題を取得します。

あなたのインストーラでは、ライブラリがインストールされているチェックしないもののためのバイナリをダウンロードします。

ユーザーの追加の快適さのために、インターネットへの接続がない場合、インストーラは、あなたが、インストーラに供給することができZIPアーカイブを受け取るためにあなたのウェブサイト上で入力することができますキーを生成しています。

快適さ、対象のディストリビューションで利用可能なライブラリをチェックし、それらをインストールするには、標準の管理ツールを使用するようにユーザーに確認してください。そのように、あなたは同じライブラリの異なるバージョンを持つコンピュータを汚染しません。

これは言った:リンク・ライブラリーの中にあなたの貴重なコードを配置して、ソースパッケージにバイナリブロブとしてそれを提供するために、よりスマートであるかもしれません。保護されたとして、それは純粋なバイナリになり、ユーザーはあなたがものを心配することなく、自分の好きなシステム上のグルーコードをコンパイルすることができますので、この方法では、あなたのコードです。

私は意味:UIを設定し、あなたのコードの一部はどれくらいの価値がありますか?誰かがそれを盗む際にどのくらいあなたは失うことになる?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top