次のパッケージをインストールしてみました。
[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を取得するには
デフォルトのアーキテクチャに最適なパッケージをインストールするようにyum
viaを設定することもできます。/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