Rpmをインストールしようとすると、次のエラーが発生します。
---> Package geramer-server.x86_64 0:3.6.0.117-1 will be an update
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: geramer-server-3.6.0.117-1.x86_64
---> Package geramer-ui.x86_64 0:3.6.0.98-1 will be updated
---> Package geramer-ui.x86_64 0:3.6.0.117-1 will be an update
--> Finished Dependency Resolution
Error: Package: geramer-server-3.6.0.117-1.x86_64 (/geramer-server-3.6.0.117.x86_64)
Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
私の最初の考えは、libcrypto.soがインストールされていないことでした。しかし、これはそうではありません、以下を参照してください:
$ ldconfig -p | grep libcrypto.so
libcrypto.so.10 (libc6,x86-64) => /usr/lib64/libcrypto.so.10
ディスクにも存在します:
$ ls -l /usr/lib64/libcrypto.so.10
lrwxrwxrwx 1 root root 18 Dec 4 13:11 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.0
また、RPMはそれを認識しています。
$ yum whatprovides "*/libcrypto.so.10"
Loaded plugins: product-id, rhnplugin, subscription-manager
*Note* Red Hat Network repositories are not listed below. You must run this command as root to access RHN repositories.
openssl-1.0.0-25.el6_3.1.x86_64 : A general purpose cryptography library with TLS implementation
Repo : installed
Matched from:
Filename : /usr/lib64/libcrypto.so.10
だから私が見逃しているアイデアはありますか?
よろしく、アンディ
依存関係にはモジュール名があり、パッケージ間の衝突を防ぐために括弧内にリストされています。ただし、RHELのopensslまたはFedoraのopenssl-libsは、2つのアーキテクチャーの4つの異なるモジュール名をlibcrypto.so.10に提供します。
$ rpm -q --provides openssl-libs | grep libcrypto.so.10
libcrypto.so.10()(64bit)
libcrypto.so.10(OPENSSL_1.0.1)(64bit)
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
libcrypto.so.10
libcrypto.so.10(OPENSSL_1.0.1)
libcrypto.so.10(OPENSSL_1.0.1_EC)
libcrypto.so.10(libcrypto.so.10)
CentOS too はRHELベースです。
あなたの場合、opensslはモジュール名なしでlibcrypto.so.10のみを提供しているように見えます。これにより、geramer-serverはモジュールlibcrypto.so.10からlibcrypto.so.10を必要とするため、依存関係がないと考えます。
私はこのスレッドが少し古いことを知っていますが、この問題に最近遭遇し、特に@divanovの回答が問題のデバッグに役立つため、それを修正するために何をしたかを共有したいと思いました。
私の場合、特定のpostgres rpm(postgresql91)をインストールできず、同じエラーが発生しました。
Error: Package: postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64 (/postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64)
Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64 (/postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64)
Requires: libssl.so.10(libssl.so.10)(64bit)
基本的に、インストールされているopensslのバージョンをアップグレードすることで問題を解決できました。この記事の執筆時点では、openssl-1.0.1e-15はCentOS(6)リポジトリで入手できます。ここでは openssl-1.0.1e-15.el6.x86_64.rpm であり、libsslを提供しています以前は存在しなかったlibcrypto依存関係。
インストールするには、次のことができます。
Sudo yum install http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-1.0.1e-15.el6.x86_64.rpm
この場合も、CentOSリポジトリのバージョンが変更されると、そのURLは有効でなくなる可能性があります。
さて、悲惨な詳細については...
もともと、私のマシンにはopenssl-1.0.0-27.el6_4.2.x86_64.rpmがインストールされていましたが、私のpostgres rpmが必要とするすべてのパッケージが提供されていませんでした。
> rpm -q --provides openssl
config(openssl) = 1.0.0-27.el6_4.2
...
libcrypto.so.10()(64bit)
...
libssl.so.10()(64bit)
...
新しいopensslバージョンをインストールした後:
> rpm -q --provides openssl
config(openssl) = 1.0.1e-16.el6_5.4
...
libcrypto.so.10()(64bit)
libcrypto.so.10(OPENSSL_1.0.1)(64bit)
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
...
libssl.so.10()(64bit)
libssl.so.10(OPENSSL_1.0.1)(64bit)
libssl.so.10(OPENSSL_1.0.1_EC)(64bit)
libssl.so.10(libssl.so.10)(64bit)
...
そして今、みんな幸せです...
結論として、opensslの新しいバージョンをインストールすると、必要な依存関係が提供されます。幸運を!
この link から適切なrpmパッケージをダウンロードしてください。
具体的には
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-16.el7.x86_64.rpm
rpm -ivh openssl-libs-1.0.2k-16.el7.x86_64.rpm --force
その後 yum install
パッケージを再度。
Opensslおよびopenssl-libsをRHEL7またはCentOS 7の次のコマンドで同時にインストールしてみてください。
Sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-1.0.2k-8.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-8.el7.x86_64.rpm
Opensslとopenssl-libsの両方が依存関係にあり、Sudoを使用せずに実行すると、古いバージョンとの競合の問題が発生する可能性があるため、相互に必要です。
/etc/yum.confのexclude行からopensslを削除することで、これを修正できました。サーバーを管理しているため、デフォルトでそこに配置されました。次に、必要なものの通常のyumインストールを実行したところ、問題なく動作しました。
Openssl rpmのローカルコピーを作成するためにyumdownloader
を使用しました。次に、-e -p PACKAGE
フラグを付けて rpmrebuild を使用して、欠落しているProvides
を追加し、新しいrpmを作成しました。次に、その結果のアーティファクトをインストールしました。 Release
を増やすことも役に立ちました。
[2018-11-07]私の解決策.
Sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-1.0.2k-12.el7.x86_64.rpmhttp:/ /mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-12.el7.x86_64.rpm
これは..
Sudo yum install
http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-1.0.2k-12.el7.x86_64.rpm
http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-12.el7.x86_64.rpm
そのファイルがそうでない場合は、そのサイトにアクセスして最新のものを見つけてから、ファイル名を編集してください。
例)
アクセス==> http://mirror.centos.org/centos/7/os/x86_64/Packages/
find ==> openssl-1.0.2k-