なぜrpm -iですか?インストールされた依存関係が失敗しましたか?

なぜrpm -iですか?インストールされた依存関係が失敗しましたか?

次のパッケージをインストールしてみました。

[root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm

ただし、依存関係の失敗エラーが発生します。

[root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm
error: Failed dependencies:
libgnutls.so.28()(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64
libgnutls.so.28(GNUTLS_1_4)(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64

もちろん、次の依存関係をインストールしてみました。

[root@localhost ~]# yum install libgnutls.so.28
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.vooservers.com
 * epel: pkg.adfinis-sygroup.ch
 * extras: mirrors.melbourne.co.uk
 * updates: mirrors.melbourne.co.uk
Package gnutls-3.3.26-9.el7.i686 already installed and latest version
Nothing to do

しかし、上記のように、パッケージが「すでにインストールされている」と「対処は必要ありません」と言われました。

パッケージがすでにインストールされている場合、これは意味がありません。それでは、libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpmインストールがこの依存関係を見つけることができないため、失敗するのはなぜですか?

答え1

インストールしましたが、gnutls-3.3.26-9.el7.i686それではなくlibgnutls.so.28()(64bit)32ビットです。

gnutls-3.3.26-9.el7.x64_86インストールするアーキテクチャと一致する正しいアーキテクチャをインストールする必要があります。

答え2

この試み、

インストールしたいライブラリi686は何ですか32-bit?エラーにはライブラリが必要であることlibmicrohttpdが明確に示されています64-bit

これを参照してください協会希望のRPMを取得するには

デフォルトのアーキテクチャに最適なパッケージをインストールするようにyumviaを設定することもできます。/etc/yum.conf変更する必要があるパラメータyum.confはですmultilib_policy

multilib_policy Can be set to 'all' or 'best'. 
multilib_policy=all

すべては、インストールするパッケージに可能なすべてのアーキテクチャをインストールすることを意味します。したがって、可能であればyum install fooがインストールされますfoo.i386 and foo.x86_64 on x86_64。最高は、このプラットフォームに最適なアーチのみをインストールすることを意味します。詳しくはこちらをご覧くださいページこの回答

基本的なアーキテクチャを理解するには、次の手順を実行します。 uname -m

答え3

yum依存関係を管理するために直接使用することは、常により良いアイデアですyum

yum install libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm

関連情報