Pourquoi yum continue de se plaindre d'une dépendance manquante déjà installée?

J'ai un rpm auto-créé pour mapserver 6.2.1 que je veux soutenir Oracle, mais j'ai beaucoup de difficultés à tout faire fonctionner.

J'ai installé l'oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64 comme un rpm, et le sdk et sqlplus comme files zip dans mon ORACLE_HOME. Cela semblait être le seul moyen de s'assurer que les files sdk se trouvent à l'location correct, que mapserver reconnaisse.

Donc, mon rpm mapserver se construit mais quand j'essaie de l'installer sur le server de build, il se plaint:

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 

Évidemment libclntsh.so.12.1 est déjà installé à travers yum et situé exactement au même endroit que lorsque le package a été construit.

Qu'est-ce que je fais mal?

Confirmer une partie de RPM

Cela ressemble à yum / RPM se plaint parce qu'une exigence n'a pas été satisfaite. J'utilise généralement cette command pour confirmer que les files sont sous le contrôle de RPM.

 $ locate libclntsh 

Si cela returnne un path, vérifiez avec RPM pour voir s'il le contrôle:

 $ rpm -qf <path from locate command> 

Si RPM ne contrôle pas ce file, peu importe s'il est sur le système, du sharepoint vue de RPM, il n'est pas installé.

Problème similaire?

Je suis tombé sur ce fil qui semble être identique à la question que vous rencontrez. La seule suggestion tangible de ce thread est de s'assurer que les files avec lesquels vous travaillez sont sur le système local. Je ne pense pas que ce soit votre problème, mais jeter un oeil sur le fil de toute façon, pourrait jeter un peu de lumière pour vous.

  • Problème avec l'installation d'Oracle 12c sur RHEL6.

En fait, votre question est double. Ce n'est pas un problème si un file libclntsh.so.12.1 est installé sur votre boîte, mais si un package de n'importe quel référentiel actuellement activé fournit une facilité 'libclntsh.so.12.1 () (64bit)'

Donc, interrogez cela via yum whatprovides 'libclntsh.so.12.1()(64bit)' et vous verrez si n'importe quel package fournit ceci. Peut-être avez-vous désactivé un référentiel?


L'autre partie de la question «pourquoi yum continue à se plaindre»: parce que yum par défaut exécutera toujours un contrôle yum pour assurer la cohérence de la database rpm et signaler tout conflit ou dépendance manquante. Ceci est étroitement lié à l'historique des transactions que yum conserve et peut être désactivé, bien qu'avec beaucoup d'effets secondaires. Vérifiez man yum.conf et l'option history_record