Descobri recentemente coleções de software e entendo como elas me permitem instalar várias versões de software introduzindo um namespace para cada coleção. No Enterprise Linux, isso é legal porque poderei manter a estabilidade regular do meu sistema, enquanto agora posso atualizar facilmente certas versões de software à medida que são atualizadas (não apenas atualizações de segurança, mas recursos também!)
Eu gostaria que o servidor web principal do meu sistema fosse httpd 2.4. A versão disponível na centos-sclo-rh
coleção de software é atualmente 2.4.12, enquanto a versão disponível em base
é apenas 2.4.6. Então instalei o httpd desse SCL e o habilitei:
> scl enable httpd24-httpd bash
E então ativou e iniciou o serviço usando systemctl
> systemctl enable httpd24-httpd
> systemctl start http24-httpd
Portanto, espero que meu sistema entenda que agora tenho um servidor da web instalado. No entanto, quando tento instalar o phpmyadmin de epel
, ele ainda deseja instalar o httpd
pacote padrão base
como uma dependência.
Analisando um pouco a mecânica do rpms, acabei de aprender que os pacotes podem ter uma linha Provides em seu arquivo de especificações listando pacotes virtuais como webserver
, e de fato o src rpm para httpd tem uma linha Provides: webserver. Estou supondo que o httpd24-httpd
pacote que obtive do SCL não possui esse descritor.
Como posso fazer com que meu sistema reconheça o instalado e habilitado httpd
do SCL fornece o webserver
pacote virtual para que ele não queira instalar o httpd
pacote base
para atender à webserver
dependência virtual?
Com o RPM Package Manager, você pode simplesmente fornecer foo 4 bar. Este é um exemplo estúpido de especificação fictícia, os puristas removerão o rpmlint ;-) avisos:
Construa isso com rpmdevtools e amigos:
Instale o pacote fictício:
Conforme sugerido por @Michael Hampton, entrei em contato com o grupo SCL, pois ele mantém o
httpd24-httpd
pacote (e muitos outros). Aqui está a resposta que recebi de Joe Orton:Nesse caso específico, valorizo a facilidade de manutenção do sistema em relação ao menor volume de software instalado resultante da não necessidade de ambos
httpd
ehttpd24-httpd
instalado; então instalei os dois e estou bem com isso. Se você realmente não deseja ter esses dois pacotes instalados ao mesmo tempo, Joe sugeriu um possível caminho a seguir que você pode considerar.