Não está claro a partir de sua descrição o que exatamente está acontecendo (mensagens de erro específicas ajudariam ou um exemplo de especificação de pacote que reproduz o problema), mas parece que as dependências de RPM deram errado, de alguma forma. Existem várias opções dependendo do que exatamente é o problema.
Fornecer o pacote ausente
Indica que o pacote fornece o módulo ausente no arquivo *.spec
:
Provides: perl(Module::Name)
...
isso pode ser feito no arquivo *.spec
do software. Às vezes, isso pode exigir um RPM que não faz nada além de fornecer a dependência ausente , principalmente quando você tem um pacote de terceiros que não pode ou não deseja modificar para corrigir as dependências.
Desativar o Autoreq
Um grande martelo é desativar os requisitos automáticos do pacote;
Autoreq: 0
isso, por sua vez, pode exigir que% adequadoBuildRequires
, Requires
e outras instruções no arquivo *.spec
configurem dependências apropriadas para o pacote (ou você poderia lidar com isso em seu gerenciamento de configuração quanto a quais pacotes precisam ser instalado). Eu tive que definir esse sinalizador em 4 dos pacotes de móduloperl-*
de 133% que eu mantenho localmente, por exemplo, em perl-File-ChangeNotify.spec
:
# KLUGE don't pull in IO::KQueue which in turn needs *BSD
Autoreq: 0
BuildRequires: perl(Carp)
...
Requires: perl(Carp)
...
Alter de Filtrar os Scripts de Dependências Automáticas
Isso é mais trabalhoso, pois requer alterar ou filtrar a saída do código que o RPM executa para determinar os requisitos; a documentação do RPM parece estar desatualizada como meu teste centos 7 O sistema não tem mais os scripts find-*
mencionados nessa página, então, sem dúvida, algo mudou com esse processo e quem sabe onde ou se está documentado agora. Em vez disso, uso um dos dois métodos acima, pois não tive tempo de pesquisar o que eles mudaram sobre os scripts de requisitos.