我最近发现了软件集合,并了解它们如何允许我通过为每个集合引入命名空间来安装多个版本的软件。在 Enterprise Linux 上,这很简洁,因为我将能够保持系统的常规稳定性,同时现在能够在某些软件版本更新时轻松更新它们(不仅仅是安全更新,还有功能!)
我希望我系统的主网络服务器是 httpd 2.4。软件集合中可用的版本centos-sclo-rh
目前为 2.4.12,而可用的版本base
仅为 2.4.6。所以我从那个 SCL 安装了 httpd 并启用了它:
> scl enable httpd24-httpd bash
然后使用 systemctl 启用并启动服务
> systemctl enable httpd24-httpd
> systemctl start http24-httpd
所以我希望我的系统应该明白我现在安装了一个网络服务器。但是,当我尝试从 安装 phpmyadmin 时epel
,它仍然希望从安装标准httpd
包base
作为依赖项。
查看 rpm 的一些机制,我刚刚了解到包可以在其规范文件中列出虚拟包之类的 Provides 行webserver
,实际上 httpd 的 src rpm 有一个 Provides: webserver 行。我猜httpd24-httpd
我从 SCL 获得的包没有那个描述符。
如何让我的系统识别httpd
从 SCL 安装和启用的webserver
虚拟包,以便它不想安装httpd
包base
来满足webserver
虚拟依赖项?