私は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
Map Server パッケージには次の要件があります。
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問題が解決することを願っています。