저는 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문제가 해결되기를 바랍니다.