1

顧客に配布するライブラリがあります。サードパーティの依存関係を動的にリンクされた依存関係のままにしておくというアイデアを検討しています。この場合、顧客は私のライブラリを使用する前に依存関係をインストールする必要があるため、顧客の展開はより複雑になります。私はこれに少し慣れていないので、幅広い質問があります:

すべての顧客が Linux を使用していると仮定すると、依存関係の .so ファイルをシステム ライブラリ ディレクトリにインストールするだけの RPM パッケージが最適なルートですか? RPM について読んだところによると、これは本来の使用方法ではありません。私が探しているのは Linux 用の一種の「インストーラー」だと思いますが、おそらくそのようなものは存在しません。

関連するすべてのバイナリ (および該当する場合はライセンス) を含み、インストール方法の説明があるパッケージをビルドするのが最善の方法ですか?

4

1 に答える 1

1

複数のオプションがあります。

  • 静的リンク (使用中のライセンスで許可されている場合)
  • さまざまなディストリビューションをサポートし、それらすべてにパッケージを提供します (実行可能性は、顧客が誰であるかによって異なります)。顧客にとっては最も簡単なオプションであり、あなたにとっては最も複雑なオプションです。
  • アプリケーションを Windows スタイルの自己完結型ディレクトリ構造 (/opt/myappまたは など/home/someuser/myapp) にインストールするインストーラを提供します。そこに共有ライブラリを配置し、LD_LIBRARY_PATHそれに応じて設定されたスクリプトを介して開始します。Loki ゲーム、Adobe Reader、Google Earth などでこのオプションが使用されているのを見てきました。

しない:

  • バイナリとライブラリを標準のディレクトリ構造にコピーするカスタム インストーラを提供します。これにより、顧客が持っている他のアプリに必要な特定のライブラリ バージョンが上書きされる場合があります。また、ディストリビューションのパッケージ管理がこれらのファイルについて認識しないため、ひどい混乱が生じます。
  • すべての人に提供rpmします。非rpmディストリビューションでは、顧客はパッケージを手動で変換してパッケージ管理システムに適合させる必要があります。
于 2013-03-19T23:13:06.070 に答える