Debianベースのディストリビューションに2つの異なるバージョンのライブラリをインストールする必要があります。

Debianベースのディストリビューションに2つの異なるバージョンのライブラリをインストールする必要があります。

Jessieはパッケージlibapr1バージョン1.5.1-3で、APR(Apache Runtime Portable)に付属しています。

しかし、これはJessieが持っている唯一のバージョン(そして最新バージョン)です。 1.3.[0-9] または 1.4.[0-9] の間の 4 月バージョンが必要な UIMA C++ SDK をビルドしようとしています。

私はDebian Wheezyに4月1.4.6があることを知っています(実際のパッケージをダウンロードしました)。

私の質問は次のとおりです

  1. ソースコードにWheezyを追加する代わりにdpkgを使用してパッケージをインストールしますか?それともソースに千音を追加する必要がありますか?
  2. dpkg経由で​​もapt-get経由でも同じライブラリの2つの異なるバージョンをインストールすると、「stuff」が破損する危険性はありますか?私が理解しているように、Jessieはapr-1.5.1を多くの用途に使用しているので、システムを複雑にしたくありません。

答え1

dpkg または apt-get を使用して 2 つの異なるバージョンをインストールする場合、-f オプションを使用して強制的にインストールしない限り、システムは中断されません。

代わりに、パッケージデータベースに追加のエントリを作成します。

ソースを手動でインストールするときは、プログラムをライブラリにリンクする必要があります。たとえば、apr-1.4.6を/usr/local/lib/aprにシンボリックリンクします。シンボリックリンクしたライブラリを使用するように古いライブラリを使用するプログラムを設定します。

プログラムがリンクを PATH ディレクトリーに置き、それが見つかるかどうかを確認します。

答え2

ソースコードにWheezyを追加する代わりにdpkgを使用してパッケージをインストールしますか?

いいえ。

それともソースに千音を追加する必要がありますか?

いいえ。

dpkg経由で​​もapt-get経由でも同じライブラリの2つの異なるバージョンをインストールすると、「stuff」が破損する危険性はありますか?

はい。


代わりに、以前のバージョン(CVE-2015-1829、最新の修正)にはいくつかのセキュリティバグがありました。 「Linuxの修正」バージョン3.10以降を含む、より多くのバージョンを識別するためのカーネルバージョンを確認する」ライブラリでカーネル4.0+でJessieを使用する場合は、最新のライブラリ優先ソフトウェアとパッチの問題をそのまま使用してビルドしてみましょう。当然アップストリームで提出する必要があります。


別のオプションは、仮想マシン(または他のカーネルを起動できるもの)を使用し、そこにWheezyをインストールすることです。これらのセキュリティ問題に対する修正は含まれていない可能性があります(直接パッチが必要な場合があります)。

関連情報