Faça o Yum reconhecer que o httpd24-httpd (do SCL) fornece o pacote virtual do servidor web

3

Recentemente, descobri coleções de software e entendi como elas permitem que eu instale várias versões de software, introduzindo um namespace para cada coleção. No Enterprise Linux, isso é interessante porque poderei manter a estabilidade regular do meu sistema, enquanto agora posso atualizar facilmente certas versões do software conforme elas são atualizadas (não apenas atualizações de segurança, mas também recursos!)

Gostaria que o servidor principal do meu sistema fosse o httpd 2.4. A versão disponível na coleção de softwares centos-sclo-rh está atualmente em 2.4.12, enquanto a versão disponível em base é apenas 2.4.6. Então eu instalei o httpd daquele SCL e o habilitei:

> scl enable httpd24-httpd bash

E, em seguida, ativado e iniciado o serviço usando systemctl

> systemctl enable httpd24-httpd
> systemctl start http24-httpd

Então, eu esperaria que meu sistema entendesse que agora tenho um servidor web instalado. No entanto, quando tento instalar o phpmyadmin de epel , ele ainda quer instalar o pacote padrão httpd de base como dependência.

Examinando um pouco da mecânica do rpms, acabei de saber que os pacotes podem ter uma linha Fornece em seu arquivo de especificações listando pacotes virtuais como webserver e, na verdade, o src rpm para o httpd tem um servidor Provides: linha. Eu estou supondo que o pacote httpd24-httpd que eu obtive do SCL não tem esse descritor.

Como faço para que meu sistema reconheça o httpd instalado e habilitado do SCL fornece o pacote webserver virtual para que ele não queira instalar o pacote httpd de base para atender à webserver virtual dependency?

    
por pcronin 14.04.2016 / 21:18

1 resposta

1

Como sugerido por @Michael Hampton, entrei em contato com o grupo SCL porque ele mantém o pacote httpd24-httpd (e muitos outros). Aqui está a resposta que recebi de Joe Orton:

SCLs are not expected to be compatible at package level with system packages by definition. Packages which depend on "webserver" typically want to drop a config file into /etc/httpd/conf.d, as you've found, and that doesn't work with the SCL httpd24.

You could in theory bridge the gap between packages which require "webserver" and httpd24: own /etc/httpd/conf.d, drop a file in /opt/rh/.../conf.d/ which has an IncludeOptional for that directory, and provide "webserver". Not sure I'd recommend it, but it should be possible to get working with some hacking.

Neste caso em particular, eu valorizo a facilidade de manutenção do sistema em relação ao menor tamanho de software instalado resultante da falta de httpd e httpd24-httpd instalado; então eu instalei os dois e estou bem com isso. Se você realmente não quer ter esses dois pacotes instalados ao mesmo tempo, então Joe sugeriu um possível caminho a ser seguido.

    
por 30.04.2016 / 23:36