본문으로 건너뛰기

yum install 시 의존성 에러가 발생하여 설치가 되지 않을 때 어떻게 해결하나요?

💡 요약 정리

  • yum install 또는 update 명령어 실행 시 특정 패키지에 필요한 의존성 패키지보다 높은 버전이 설치되어 있으면 오류가 발생할 수 있습니다.
  • 이 경우, 관련 의존 패키지를 downgrade 하거나 remove 후 다시 설치하면 해결할 수 있습니다.
  • 예제에서는 mysql-devel 설치 시 krb5-libs 및 mysql-libs 버전 충돌이 발생하며, downgrade 후 정상 설치됩니다.
  • 아래의 설치 명령어 실행 예시와 결과 메시지를 통해 문제 해결 방법을 확인할 수 있습니다.

yum으로 패키지를 설치하다 보면 아래와 같이 의존성 패키지의 버전 문제로 에러가 발생하는 경우가 있습니다.

yum install 이나 update를 실행할 때, 의존성이 걸린 패키지를 체크하면서 의존성 패키지들 중 필요한 버전보다 높은 버전이 설치돼 있는 경우에 발생합니다.

아래의 경우는 mysql-devel 패키지를 설치하면서, 의존성이 걸린 krb5-libs 와 mysql-libs 패키지가 필요한 패키지보다 높은 버전이 설치돼 있기 때문입니다.

간단히 yum downgrade 명령으로 krb5-libs 와 mysql-libs 버전을 다운그레이드 하거나, yum remove 명령으로 krb5-libs 와 mysql-libs 패키지를 삭제해 버린 후에, yum install 명령으로 mysql-devel 패키지를 설치하면 삭제된 패키지도 의존성 버전에 맞는 버전으로 다시 설치됩니다.

[root@Linux-vm1 cron.d]# yum install mysql-devel

Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.x86_64 0:5.1.52-1.el6_0.1 will be installed
--> Processing Dependency: mysql = 5.1.52-1.el6_0.1 for package: mysql-devel-5.1.52-1.el6_0.1.x86_64
--> Processing Dependency: openssl-devel for package: mysql-devel-5.1.52-1.el6_0.1.x86_64
--> Running transaction check
---> Package mysql.x86_64 0:5.1.52-1.el6_0.1 will be installed
--> Processing Dependency: mysql-libs = 5.1.52-1.el6_0.1 for package: mysql-5.1.52-1.el6_0.1.x86_64
---> Package openssl-devel.x86_64 0:1.0.0-20.el6 will be installed
--> Processing Dependency: zlib-devel for package: openssl-devel-1.0.0-20.el6.x86_64
--> Processing Dependency: krb5-devel for package: openssl-devel-1.0.0-20.el6.x86_64
...
Error: Protected multilib versions: krb5-libs-1.9-22.el6.i686 != krb5-libs-1.9-22.el6_2.1.x86_64
Error: Protected multilib versions: mysql-libs-5.1.52-1.el6_0.1.i686 != mysql-libs-5.1.61-1.el6_2.1.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

위와 같은 에러 메시지가 표시될 경우, 다음과 같이 downgrade 명령어를 실행합니다.

[root@Linux-vm1 cron.d]# yum downgrade krb5-libs mysql-libs

Loaded plugins: fastestmirror, refresh-packagekit
Setting up Downgrade Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package krb5-libs.x86_64 0:1.9-22.el6 will be a downgrade
---> Package krb5-libs.x86_64 0:1.9-22.el6_2.1 will be erased
---> Package mysql-libs.x86_64 0:5.1.52-1.el6_0.1 will be a downgrade
---> Package mysql-libs.x86_64 0:5.1.61-1.el6_2.1 will be erased
--> Finished Dependency Resolution

Dependencies Resolved
...
Transaction Summary
====================================================================================================================================
Downgrade     2 Package(s)

Total download size: 1.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): krb5-libs-1.9-22.el6.x86_64.rpm | 708 kB     00:00
(2/2): mysql-libs-5.1.52-1.el6_0.1.x86_64.rpm | 1.2 MB     00:00
------------------------------------------------------------------------------------------------------------------------------------
Total                                               40 MB/s | 1.9 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : mysql-libs-5.1.52-1.el6_0.1.x86_64     1/4
  Installing : krb5-libs-1.9-22.el6.x86_64            2/4
  Cleanup    : krb5-libs-1.9-22.el6_2.1.x86_64        3/4
  Cleanup    : mysql-libs-5.1.61-1.el6_2.1.x86_64     4/4

Removed:
  krb5-libs.x86_64 0:1.9-22.el6_2.1
  mysql-libs.x86_64 0:5.1.61-1.el6_2.1

Installed:
  krb5-libs.x86_64 0:1.9-22.el6
  mysql-libs.x86_64 0:5.1.52-1.el6_0.1

Complete!

동일한 명령어를 다시 실행하여 설치가 정상적으로 진행되는지 확인합니다.

[root@Linux-vm1 cron.d]# yum install mysql-devel

Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.x86_64 0:5.1.52-1.el6_0.1 will be installed
---> Package mysql.x86_64 0:5.1.52-1.el6_0.1 will be installed
---> Package openssl-devel.x86_64 0:1.0.0-20.el6 will be installed
---> Package zlib-devel.x86_64 0:1.2.3-27.el6 will be installed
---> Package krb5-devel.x86_64 0:1.9-22.el6 will be installed
---> Package keyutils-libs-devel.x86_64 0:1.4-3.el6 will be installed
---> Package libcom_err-devel.x86_64 0:1.41.12-11.el6 will be installed
---> Package libselinux-devel.x86_64 0:2.0.94-5.2.el6 will be installed
---> Package libsepol-devel.x86_64 0:2.0.41-4.el6 will be installed

Transaction Summary
====================================================================================================================================
Install       9 Package(s)

Total download size: 3.6 M
Installed size: 8.3 M
Is this ok [y/N]: y
Downloading Packages:
...
Installed:
  mysql-devel.x86_64 0:5.1.52-1.el6_0.1

Dependency Installed:
  keyutils-libs-devel.x86_64
  krb5-devel.x86_64
  libcom_err-devel.x86_64
  libselinux-devel.x86_64
  libsepol-devel.x86_64
  mysql.x86_64
  openssl-devel.x86_64
  zlib-devel.x86_64

Complete!