web-dev-qa-db-ja.com

なぜyumは、すでにインストールされている依存関係の欠落について不平を言い続けるのですか?

Oracleをサポートしたいmapserver6.2.1用の自己作成rpmがありますが、すべてを機能させるのに多くの問題があります。

Oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64をrpmとしてインストールし、sdkとsqlplusをZipファイルとしてOracle_HOMEにインストールしました。これは、mapserverが認識できるように、sdkファイルが正しい場所にあることを確認する唯一の方法のようです。

だから私のmapserver rpmはビルドしますが、それをビルドサーバーにインストールしようとすると、不満があります:

Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mapserver.x86_64 0:6.2.1-2 will be updated
--> Processing Dependency: mapserver = 6.2.1-2 for package: mapserver-Perl-6.2.1-2.x86_64
--> Processing Dependency: mapserver = 6.2.1-2 for package: mapserver-python-6.2.1-2.x86_64
---> Package mapserver.x86_64 0:6.2.1-12.el6 will be an update
--> Processing Dependency: libclntsh.so.12.1()(64bit) for package: mapserver-6.2.1-12.el6.x86_64
--> Running transaction check
---> Package mapserver.x86_64 0:6.2.1-12.el6 will be an update
--> Processing Dependency: libclntsh.so.12.1()(64bit) for package: mapserver-6.2.1-12.el6.x86_64
---> Package mapserver-Perl.x86_64 0:6.2.1-2 will be updated
---> Package mapserver-Perl.x86_64 0:6.2.1-12.el6 will be an update
---> Package mapserver-python.x86_64 0:6.2.1-2 will be updated
---> Package mapserver-python.x86_64 0:6.2.1-12.el6 will be an update
--> Processing Dependency: libclntsh.so.12.1()(64bit) for package: mapserver-python-6.2.1-12.el6.x86_64
--> Finished Dependency Resolution
Error: Package: mapserver-6.2.1-12.el6.x86_64 (geodata)
       Requires: libclntsh.so.12.1()(64bit)
Error: Package: mapserver-python-6.2.1-12.el6.x86_64 (geodata)
       Requires: libclntsh.so.12.1()(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

明らかに、libclntsh.so.12.1はすでにyumを介してインストールされており、パッケージがビルドされたときとまったく同じ場所に配置されています。

私は何が間違っているのですか?

4
Jesper Kihlberg

RPMの一部を確認する

要件が満たされていないため、yum/RPMから不満が出ているようです。通常、このコマンドを使用して、ファイルがRPMの制御下にあることを確認します。

$ locate libclntsh

これでパスが返される場合は、RPMでパスを制御しているかどうかを確認してください。

$ rpm -qf <path from locate command>

RPMがこのファイルを制御しない場合、それがシステム上にあるかどうかは関係ありません。RPMから見ると、インストールされていません。

同様の問題?

私はあなたが抱えている問題と同じように見えるこのスレッドに出くわしました。そのスレッドからの具体的な提案は、作業しているファイルがローカルシステムにあることを確認することだけです。それはあなたの問題ではないと思いますが、とにかくスレッドを見てください、あなたのためにいくつかの光を当てるかもしれません。

3
slm

実際、あなたの質問は2つあります。これは、ファイルlibclntsh.so.12.1がボックスにインストールされているかどうかではなく、現在有効になっているリポジトリのパッケージが機能「libclntsh.so.12.1()(64bit)」を提供しているかどうかに関係なく問題です。

したがって、yum whatprovides 'libclntsh.so.12.1()(64bit)'を介してクエリを実行すると、これを提供するパッケージがあるかどうかがわかります。多分あなたは1つのリポジトリを無効にしましたか?


「なぜyumが文句を言い続けるのか」という質問の他の部分:デフォルトでは、yumは常にyum checkを実行して、rpmデータベースの整合性を確保し、競合や欠落している依存関係を報告するためです。これは、yumが保持するトランザクション履歴と密接に関連しており、多くの副作用がありますが、無効にできますman yum.confとオプションhistory_recordを確認します

0
doktor5000