自己コンパイルされたパッケージをパッケージマネージャ(例:apt-get、yum)とうまく機能させる方法[レプリケーション]

自己コンパイルされたパッケージをパッケージマネージャ(例:apt-get、yum)とうまく機能させる方法[レプリケーション]

私が欲しいとしましょう:

  • 独自のカスタムアプリケーションのコンパイルとインストール
  • これを行うには、最新バージョンのlibthriftソースコードをダウンロード、コンパイル、インストールする必要があります。
  • 最新バージョンのlibboostをダウンロード、コンパイル、インストールする必要があります。

ここでは、システムにこれらのライブラリをインストールし、他のパッケージと対話することができます。多くのライブラリはlibthriftとlibboostに依存しています。

  • これをインストールすると、apt-get / yumを使用してインストールされている既存のパッケージが破損する可能性があります。

また、後でapt-getまたはyumを実行すると、次のようになります。

  • 私のカスタムlibthriftとlibboostが上書きされ、これらのライブラリのカスタムバージョンに依存するカスタムアプリケーションがクラッシュします。

それでは、ここで解決策は何ですか? /homeにインストールしたくありません(コード回帰ビルドクラスタの共有ユーザーがパッケージを使用できるようにしたい)。私は/ optが実際にこの目的に使用されていないことを読んだ(インストールされたパッケージは独立、しかしそうではありません)。これ引用する私は事件が十分に詳細であることがわかりました。

ベストアンサー1

通常、解決策は「ソースからパッケージングシステムが管理するディレクトリにインストールしないでください」です。

たとえば、カスタムコンパイルされたコードをインストールし、ビルドシステムへの適切な呼び出し(たとえば、//を一般に設定)を使用して、それに依存するライブラリとインクルードファイルを見つけることができます/usr/local/usr/localCPPFLAGSCFLAGSLDFLAGSMakefile

アプリケーション固有のディレクトリ(たとえば、またはなど/usr/local/myapp/opt/myappにすべてのエントリをインストールすることもできます。

これも良いユースケースです。ルーストアバウト、ホストシステムと分離された分離開発/ランタイム環境を非常に簡単に設定できます。

おすすめ記事