多くの良い答えがありました (私のものも含まれています:)) here . それはバイナリ互換性に関するものですが(心配する必要があります)。
インストーラーについては、autopackage をお勧めします (これを使用してソフトウェアのいくつかのバージョンを正常にリリースしました)。"installer.sh" 部分は既に実行されています (デスクトップ統合など)。
パッケージ構造の複雑さに応じて、アップグレードのシナリオなどを慎重にテストする必要がありますが、全体的にはかなりきれいです。1.2.6 で依存関係の処理に関するいくつかのバグを修正したので、問題ないはずです。
更新:元の質問が削除されたため、ここに完全な回答を再投稿し、 Listallerにマージされた autopackage へのすべての参照を無視します。関連する部分が残っているかどうかはわかりません。
ディストリビューションで利用できる可能性が高い標準ライブラリ (crypto++、pthread など) については、動的にリンクし、ディストリビューション リポジトリから取得するようにユーザーに指示します。または、可能であれば静的にリンクします。
バージョンを制御する必要がある奇妙なライブラリの場合 (たとえば、Qt4 アプリを敵のノームの領域に展開する場合)、それらを自分でコンパイルし、アプリだけが知っているプライベート スポットにインストールします。
サポートするすべてのディストリビューションのパッケージ システムに干渉しないことが確実でない限り、プライベート ライブラリを標準の場所にインストールしないでください。(そして、彼らもあなたに干渉することはできません)。
LD_LIBRARY_PATH の代わりに rpath を使用し、相互に参照するすべてのバイナリとすべての dll に対して適切に設定します。バイナリの rpath を "$ORIGIN;$ORIGIN/../lib;/opt/my/private/libs" に設定し、リンカーに標準パスの前にそれらの場所を検索させることができます。(オリジンが動作するようにリンカーフラグを設定する必要があると思います)。libs にも rpath を設定してください: たとえば、QtGui には QtCore が必要で、ユーザーがたまたま別のバージョンの標準パッケージをインストールした場合、絶対にそれを取得したくありません (exe -> ../lib/QtGui.so ( 4.4.3) -> /usr/local/lib/QtCore.so (4.4.2) -- 確実に早く死ぬ方法)。
任意の rpath でコンパイルした場合、後で chrpath で変更できるため、後処理またはインストール スクリプトの一部としてインストール場所を微調整できます。
バイナリ互換性を維持します。GLIB_C はユーザーにとってほとんど静的であるため、十分に古いバージョンにリンクする必要があります。2.3は安全な賭けです。APBuild を使用できます。これは、GLIB_C バージョンを強制し、他のバイナリ互換性に関するトリックをほとんど実行しない gcc ラッパーです。したがって、すべてのアプリを非常に古いディストリビューションでコンパイルする必要はありません。
何かに静的にリンクする場合、通常は APBuild で再構築する必要があります。そうしないと、新しい GLIB_C シンボルをドラッグすることになります。プライベートにインストールするすべての .so も当然、それを使用してビルドする必要があります。古いシンボルを使用するには、サードパーティのライブラリにパッチを適用する必要がある場合があります。(古いGLIB_Cにはそのような関数がないため、有効な権限ではなく実際の権限を返すようにルビーにパッチを当てる必要がありました。何かを壊したかどうかはまだわかりません:))。
デスクトップ環境 (ファイルの関連付け、MIME タイプ、アイコン、スタート メニュー エントリなど) との統合には、xdg-utils を使用します。ただし、Linux のすべての場合と同様に、ファイル名のスペースはあまり好きではないことに注意してください :)。各ターゲット ディストリビューションでこれらのことを必ずテストしてください。xdg の実装にはバグや癖がつきものです。
実際のインストールでは、さまざまなネイティブ パッケージ (rpm、deb など) を提供するか、独自のインストーラーを展開するか、ネイティブ パッケージ マネージャーをバイパスしてすべてのディストリビューションで動作するインストーラーを見つけることができます。そのために Autopackage (APbuild を作成したのと同じ人) を使用することに成功しました。