自己コンパイルされたパッケージを取得して、パッケージマネージャー(apt-get、yumなど)とうまく連携させるにはどうすればよいですか?

user48956

私がしたいとします:

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

ここでは、他のパッケージと相互作用する可能性のあるこれらのライブラリをシステムにインストールしています。非常に多くのライブラリがlibthriftとlibboostに依存しています。

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

また、後でapt-getまたはyumを実行した場合:

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

それで、ここでの解決策は何ですか?/ homeにインストールしたくありません(コードリグレッションビルドクラスターの共有ユーザーがパッケージを利用できるようにしたい)。また、/ optは実際にはこの目的ではないことも読みました(インストールされるパッケージは自己完結型である必要があります、そうではありません)。参照私が見つけたが、十分詳細にこのケースをカバーしているようです。

larsks

一般的に、解決策は「ソースからパッケージングシステムによって管理されているディレクトリにインストールしようとしないでください」です。

あなたはへのカスタム・コンパイルされたコードをインストールすることができ/usr/local、例えば、それがに見に依存して何も持つ/usr/localライブラリのとビルドシステムの適切な呼び出しを使用してファイルをインクルードする(例えば、設定CPPFLAGS/ CFLAGS/LDFLAGS一般的なためMakefile)。

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

これは、Dockerのようなものの優れたユースケースでもあり、ホストから分離された分離された開発/ランタイム環境を非常に簡単にセットアップできます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ