0

I'm working on a hosted virtual server with AlmaLinux v9.3.0 and cPanel 120.0.1 installed.

It also has EasyApache installed.

I'm trying to install package from the EPEL Repo called "mapserver"

Running the command dnf install -y mapserver

I get the following error:-

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)

The system was already configured with the following repos enabled:-

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

The mapserver package has the following requirements:-

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)

I don't want to remove/upgrade/etc the EasyApache install.

I'm trying to understand what the "--nobest" suggested options means?

Would this ignore what seems to be a conflict between Standard Apache and Easy Apache?

Mapserver does not have a direct compilation requirement on "httpd", though this might come from the optional "FastCGI" library that this package is probably built with.

The mapserver binary is a standalone binary that can be used via non "FastCGI", so I don't think any of the optional "FastCGI" functionality will be used.

Is there a way to use DNF to install while ignoring the "httpd" dependency?

I don't really want to have to compile mapserver from source to exclude "FastCGI" support.

2 Answers 2

2

You can create a dummy package that provides the missing dependency. I wrote a tool (many, many years ago) that makes this relatively easy: https://github.com/larsks/fakeprovide

After installing the script, you can run:

fakeprovide httpd

Which will generate something like:

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

That package provides the named dependency:

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

Install that package, and then you should be able to install things that depend on httpd.

4
  • +1 upvote as that's a nice little script.
    – eyoung100
    Commented Apr 11 at 19:54
  • This might be an option but it's not a direction I want to take at the moment if there are other options. Given that the machine has Apache(httpd) on it just not from the standard package and I don't know what impact it would have on the existing package that provides Apache(httpd).
    – Andrew
    Commented Apr 11 at 20:49
  • It wouldn't have any impact on that package, because you haven't installed it. This is telling the packaging system, "I have httpd", without actually installing the httpd package. I don't think you're going to find a better solution (well, you could rebuild the EasyApache packages so that they provide httpd instead).
    – larsks
    Commented Apr 11 at 22:18
  • This is a good workaround (hence the up vote) as I believe it is the fault of both EasyApache and Mapserver packages. Mapserver as built by the package does not require "httpd". So my preferred solution is get Mapserver package fixed but in the mean time, use a self built package.
    – Andrew
    Commented Apr 12 at 14:49
0

The problem is due to a combination of a bad "Easy Apache" package and a bad "Mapserver" package.

Mapserver as built by the package does not require "httpd". "httpd" is only required if you enabled the non default experimental "Apache Module"

Solution I'm going to use to is to use the RPMSPEC

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

with the following lines removed:-

Requires:       httpd
BuildRequires:  httpd-devel

And rpmbuild a new version of the package.

I've also raised the bug https://bugzilla.redhat.com/show_bug.cgi?id=2274733 to hopefully get it fixed.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .