2011-12-20 2 views
1

フォーク、Linux - 実行可能イメージ内の共有ライブラリリンクを修正するには?

私はLinuxベースの実行可能ファイルを作成しました。ユーザーが簡単にダウンロードして使用できるように設定したいと思います。ユーザがUbuntu 11.xxのx86版を持っている限り、彼らは単にアプリケーションを実行できるはずです。

私が理解しようとしている問題は、共有ライブラリに対処する方法です。例えば、私の実行ファイルはlibxxx.so.23を必要とするかもしれませんが、ユーザはlibxxx.so.22を持つかもしれません。私が使用している機能については、アプリケーションは任意のバージョンのsofileで動作します。

同様の記事を見て、アドバイスは2つのバージョン間に新しいシンボリックリンクを作成することでした。

問題は、ユーザーがすべての依存関係に対してシンボリックリンクを作成して作成することを期待できないことです。

大量配布の準備が整っている簡単な実行可能ファイルを作成するには、より良い方法が必要です。明らかに、apt-getでダウンロードされたパッケージは自動的にこの問題に対処しているようです。

ご協力いただきありがとうございます。それは、特定の.soファイル(複数可)に依存しないよう

よろしく、 ピーター

+0

NBことで

Or you can create the .deb (for ubuntu and debian) package. It will resolve the library dependencies. 

。 –

答えて

0

あなたのアプリケーション用の静的ビルドを作成することをお勧めします。 ビルド時にlibxxx.a(スタティックライブラリ)にリンクしてください。共有ライブラリの異なるバージョン間のシンボリックリンクを作成することは確実に動作しないことを SIVA K

2

はaptと同様のバイナリベースのパッケージマネージャで

パッケージは正確に通常依存している、静的にあなたのパッケージをコンパイルlibsのバージョンは、nmap-2.2.3などがlibpcap-1.1.2に依存するため、常に同じ.soにリンクします。

関連する問題