왜 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

관련 정보