Crie seus RPMs usando mock
. Isto constrói dentro de um chroot contendo apenas os pacotes necessários para construir o RPM e ajuda a prevenir situações como esta.
O pacote em questão é o samba-3.6.7. Eu construí o pacote com sucesso, mas ao tentar instalá-lo, ele retorna,
error: failed dependencies:
libtalloc.so.1 is needed by samba-3.6.7
Eu não tenho ideia do porquê isso acontece. libtalloc.so.1
é fornecido pelo meu pacote samba atual (que estou substituindo), mas esse novo samba fornece libtalloc.so
e libtalloc.so.2
. Por que ainda depende de libtalloc.so.1
e como posso corrigi-lo?
Edite o arquivo de especificações e remova a entrada requer para libtalloc.so.1. Reconstruir e deve funcionar. Ter essas entradas de metadados incorretas pode ser difícil de rastrear.
libtalloc.so.1
foi adicionado pelo gerador automático de dependências que não é infalível.
Outra possibilidade é que algo na sua construção realmente esteja vinculado a libtalloc.so.1
, e é por isso que os ambientes de construção são importantes.
Supondo que o gerador de dependência automática está falhando e você deseja consertá-lo, substitua __perl_requires
(dependendo da versão do rpm) em seu arquivo de especificação:
source1: %{name}-filter-requires.sh
%define __perl_requires %{SOURCE1}
Então %{name}-filter-requires.sh
é:
#!/bin/sh
/usr/lib/rpm/perl.req $* |\
sed -e '/libtalloc.so.1/d'