AlmaLinux에서 DNF와의 패키지 충돌을 해결하는 방법

AlmaLinux에서 DNF와의 패키지 충돌을 해결하는 방법

저는 AlmaLinux v9.3.0 및 cPanel 120.0.1이 설치된 호스팅된 가상 서버를 사용하고 있습니다.

EasyApache도 설치됩니다.

EPEL Repo에서 "mapserver"라는 패키지를 설치하려고 합니다.

명령 실행 dnf install -y mapserver

다음과 같은 오류가 발생합니다.-

Last metadata expiration check: 0:04:58 ago on Thu 11 Apr 2024 05:04:00 PM BST.
Error:
 Problem: problem with installed package ea-apache24-2.4.59-1.1.1.cpanel.x86_64
  - package ea-apache24-2.4.59-1.1.1.cpanel.x86_64 from @System conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream
  - package ea-apache24-2.4.58-1.1.5.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream
  - package ea-apache24-2.4.58-1.1.6.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream
  - package ea-apache24-2.4.58-3.3.5.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream
  - package ea-apache24-2.4.58-3.3.6.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream
  - package ea-apache24-2.4.59-1.1.1.cpanel.x86_64 from EA4-c9 conflicts with httpd-mmn provided by httpd-core-2.4.57-5.el9.x86_64 from appstream
  - package httpd-2.4.57-5.el9.x86_64 from appstream requires httpd-core = 2.4.57-5.el9, but none of the providers can be installed
  - package mapserver-8.0.0-3.el9.x86_64 from epel requires httpd, but none of the providers can be installed
  - conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

시스템은 다음 리포지토리를 활성화하도록 구성되었습니다.

dnf repolist enabled

repo id                                                                                              repo name
EA4-c9                                                                                               EA4 ( EasyApache 4 - c9 )
appstream                                                                                            AlmaLinux 9 - AppStream
baseos                                                                                               AlmaLinux 9 - BaseOS
cpanel-addons-production-feed                                                                        cPanel Addons Production Feed
cpanel-plugins                                                                                       cPanel Plugins project
crb                                                                                                  AlmaLinux 9 - CRB
epel                                                                                                 Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264                                                                                  Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras                                                                                               AlmaLinux 9 - Extras
fortimonitor.repo                                                                                    FortiMonitor Repository
imunify360                                                                                           EL-9 - Imunify360
imunify360-rollout-1                                                                                 Imunify360 - Gradual Rollout Slot 1
imunify360-rollout-2                                                                                 Imunify360 - Gradual Rollout Slot 2
imunify360-rollout-3                                                                                 Imunify360 - Gradual Rollout Slot 3
imunify360-rollout-4                                                                                 Imunify360 - Gradual Rollout Slot 4
imunify360-rollout-5                                                                                 Imunify360 - Gradual Rollout Slot 5
imunify360-rollout-6                                                                                 Imunify360 - Gradual Rollout Slot
imunify360-rollout-7                                                                                 Imunify360 - Gradual Rollout Slot 7
imunify360-rollout-8                                                                                 Imunify360 - Gradual Rollout Slot 8
kernelcare                                                                                           kernelcare
mysql-connectors-community                                                                           MySQL Connectors Community
mysql-tools-community                                                                                MySQL Tools Community
mysql80-community                                                                                    MySQL 8.0 Community Server
wp-toolkit-cpanel                                                                                    WP Toolkit for cPanel
wp-toolkit-thirdparties                                                                              WP Toolkit third parties

맵 서버 패키지에는 다음 요구 사항이 있습니다.

dnf repoquery --requires mapserver

dejavu-sans-fonts
httpd
libc.so.6(GLIBC_2.34)(64bit)
libfcgi.so.0()(64bit)
libmapserver.so.2()(64bit)
rtld(GNU_HASH)

EasyApache 설치를 제거/업그레이드/등하고 싶지 않습니다.

"--nobest" 제안 옵션의 의미가 무엇인지 이해하려고 노력 중입니다.

표준 Apache와 Easy Apache 간의 충돌을 무시합니까?

Mapserver에는 "httpd"에 대한 직접적인 컴파일 요구 사항이 없지만 이는 패키지에서 사용할 수 있는 선택적 "FastCGI" 라이브러리에서 나올 수 있습니다.

Mapserver 바이너리는 FastCGI가 아닌 것을 통해 사용할 수 있는 독립 실행형 바이너리이므로 선택적 "FastCGI" 기능은 사용되지 않는 것 같습니다.

DNF를 사용하여 설치하고 "httpd" 종속성을 무시하는 방법이 있습니까?

"FastCGI" 지원을 제외하기 위해 소스에서 맵 서버를 컴파일하고 싶지 않습니다.

답변1

누락된 종속성을 제공하기 위해 더미 패키지를 생성할 수 있습니다. 나는 이것을 상대적으로 쉽게 만드는 도구를 (수년 전에) 작성했습니다.https://github.com/larsks/fakeprovide

스크립트를 설치한 후 다음을 실행할 수 있습니다.

fakeprovide httpd

그러면 다음과 같은 내용이 생성됩니다.

fakeprovide-httpd-20240411151453-1.fc39.noarch.rpm

이 패키지는 지정된 종속성을 제공합니다.

$ rpm -qp fakeprovide-httpd-20240411151453-1.fc39.noarch.rpm --provides
fakeprovide-httpd = 20240411151453-1.fc39
httpd

패키지를 설치하면 종속성을 설치할 수 있습니다 httpd.

답변2

문제는 잘못된 "Easy Apache" 패키지와 잘못된 "Mapserver" 패키지의 조합으로 인해 발생합니다.

패키지에서 구축된 Mapserver에는 "httpd"가 필요하지 않습니다. 'httpd'는 기본이 아닌 실험적 'Apache 모듈'을 활성화하는 경우에만 필요합니다.

내가 원하는 해결책은 RPMSPEC을 사용하는 것입니다.

https://src.fedoraproject.org/rpms/mapserver/blob/epel9/f/mapserver.spec

다음 줄을 삭제하세요:-

Requires:       httpd
BuildRequires:  httpd-devel

패키지의 새 버전을 rpmbuild합니다.

저도 이 버그 올렸어요https://bugzilla.redhat.com/show_bug.cgi?id=2274733문제가 해결되기를 바랍니다.

관련 정보