Estou trabalhando em um servidor virtual hospedado com AlmaLinux v9.3.0 e cPanel 120.0.1 instalados.
Também possui EasyApache instalado.
Estou tentando instalar o pacote do EPEL Repo chamado "mapserver"
Executando o comando
dnf install -y mapserver
Estou tendo o erro a seguir:-
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)
O sistema já estava configurado com os seguintes repositórios habilitados:-
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
O pacote mapserver possui os seguintes requisitos:-
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)
Não quero remover/atualizar/etc a instalação do EasyApache.
Estou tentando entender o que significam as opções sugeridas "--nobest".
Isso ignoraria o que parece ser um conflito entre o Standard Apache e o Easy Apache?
O Mapserver não possui um requisito de compilação direta em "httpd", embora isso possa vir da biblioteca opcional "FastCGI" com a qual este pacote provavelmente foi compilado.
O binário mapserver é um binário independente que pode ser usado via não "FastCGI", então não acho que nenhuma funcionalidade opcional "FastCGI" será usada.
Existe uma maneira de usar o DNF para instalar ignorando a dependência “httpd”?
Eu realmente não quero compilar o mapserver a partir do código-fonte para excluir o suporte "FastCGI".
Você pode criar um pacote fictício que forneça a dependência ausente. Escrevi uma ferramenta (muitos, muitos anos atrás) que torna isso relativamente fácil: https://github.com/larsks/fakeprovide
Depois de instalar o script, você pode executar:
O que irá gerar algo como:
Esse pacote fornece a dependência nomeada:
Instale esse pacote e você poderá instalar coisas que dependem do
httpd
.O problema é devido a uma combinação de um pacote "Easy Apache" ruim e um pacote "Mapserver" ruim.
O Mapserver construído pelo pacote não requer "httpd". "httpd" só é necessário se você habilitou o "Módulo Apache" experimental não padrão
A solução que vou usar é usar o RPMSPEC
https://src.fedoraproject.org/rpms/mapserver/blob/epel9/f/mapserver.spec
com as seguintes linhas removidas: -
E rpmbuild uma nova versão do pacote.
Também levantei o bug https://bugzilla.redhat.com/show_bug.cgi?id=2274733 para corrigi-lo.