Tentando instalar um RPM recém-construído, mas ele diz que é dependente de uma lib, ele não deve depender de

2

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?

    
por LouisC 31.08.2012 / 18:58

3 respostas

2

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.

    
por 01.09.2012 / 17:29
1

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.

    
por 31.08.2012 / 19:19
0

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'
    
por 31.08.2012 / 22:01

Tags