web-dev-qa-db-ja.com

RPMに依存関係がないと表示されていますが、そのライブラリは(ソースから)すでにインストールされています

rpmパッケージをインストールすると、必要な依存ライブラリがないことが警告されます。実際、そのライブラリはソースから既にインストールしているので、rpmはそのことを知らないと思います。

次に、rpmに既存のライブラリとその方法を知らせますか?たぶん、rpm構成ファイルにコードを追加しますか?

ちなみに、不足しているライブラリを(もう一度)rpmでインストールすると、問題は(すぐに)解決する可能性がありますが、rpmのバージョンが利用できない場合があります。

5
shintaroid

RPM依存関係データベースは、ソースからパッケージをインストールしたことを認識できません。 RPMデータベースはRPMパッケージに存在するメタデータのみを認識し、ソースからインストールされたパッケージにはこのメタデータが含まれていません。

ソースからパッケージをビルドする一部の構成スクリプトは、インストールされたパッケージに関するメタデータである pkg-config を生成します。ただし、pkg-configのメタデータとRPMメタデータ(またはDEBメタデータ、またはpacmanメタデータ)の明確な統合はありません。ディストリビューションをパッケージ化するとき、パッケージャはメタデータを特定の形式でパッケージ(RPMパッケージなど)に挿入し、そのメタデータは依存関係を決定するために使用されるものです。他の形式で提供されるメタデータはありません。

一方、同じシステム上に異なるバージョンのライブラリを置くことができます。デフォルトでは(つまり、ほとんどのパッケージが従う GNUコーディング標準 に従って)、configureスクリプトはその生成物を/usr/localにインストールする必要があります。ディストリビューションによってパッケージ化されたパッケージ(RPMなど)は、コンテンツを/usrにインストールする必要があります。

したがって、慣習に従って( [〜#〜] fhs [〜#〜] と呼ばれ)、ソースからインストールされたパッケージ/ライブラリを/usr/localに保持し、RPMを介して同じライブラリをインストールしますライブラリと競合しません(ディストリビューションのパッケージャーはFHSに準拠しているため)。

利用可能なRPMがない場合は、自分で作成できます。そのためには、ソースからパッケージ/ライブラリをビルドし、ダミーの場所(ビルドルート)にインストールする必要があります。次に、RPMパッケージに必要なメタデータを提供し、RPMファイルにパッケージ化します。 TLDPには日付がありますが、非常に完全です RPMの構築に関するガイド

7
grochmal

これがyumなどのパッケージマネージャーに固執するか、最悪の場合はrpmに固執する理由ですが、ソースからのインストールは避けてください。

したがって、解決策は、RPMパッケージで欠落している依存関係をインストールすることです。最初にソースからインストールしたものを削除することをお勧めしますが、場合によっては少し難しい場合もあります。

5
Julie Pelletier