Debian Packaging: Como evitar erros ao tentar sobrescrever

1

Eu tenho dois Pacotes Debian que foram feitos anteriormente em nosso repositório interno. Ambos compartilham o mesmo código-fonte, mas são compilados com uma opção distinta, criando dois binários separados com as mesmas libs. Eles deveriam ser instalados em servidores separados

Portanto, esses dois pacotes não podem ser instalados ao mesmo tempo, porque eles tentam instalar as mesmas libs, daí o erro do dpkg "tentando sobrescrever / my / lib".

O problema: eu preciso instalá-los no mesmo servidor.

A pergunta é: Que modificação devo adicionar para torná-los compatíveis?

Algumas pistas:

  • Crie um terceiro pacote a partir da mesma fonte, compilando toda a fonte em vez de dois separados (mas eu acho que esse é o jeito sujo)

  • Encontre uma opção para informar que esses dois pacotes podem ser compatíveis (mas não sei se existe)

  • Crie um pacote "pacote-comum" contendo as libs, man pages etc. das quais os outros 2 pacotes dependeriam. (mas eu não tenho idéia sobre como compilar a fonte de upstream dessa forma)

Eu entendo que esta pergunta é bastante complicada para explicar especialmente em um inglês ruim, mas espero que você me dê algumas pistas:)

Obrigado à comunidade!

    
por Falken 31.12.2009 / 10:37

2 respostas

5

Sua terceira opção é a mais comum. Muitas vezes você vai ver chamado de comum ou -base. Ele é feito em muitos lugares para fornecer pacotes de biblioteca separados, bem como pacotes de doc ou addons. Você está essencialmente criando vários pacotes da única fonte. A maioria dos pacotes -doc e os pacotes comuns, bem como muitos dos pacotes lib *, estão sendo criados dessa maneira.

por exemplo,

package-base
package-option1
package-option2

package-option1 e package-option2 dependem da base de pacotes. Essa é a melhor e mais segura maneira de fazer isso. Há muitos exemplos disso nos repositórios de pacotes Debian / Ubuntu - apache2, php5, dhcp3, nagios3, vim

dh_make tem suporte para criar esses pacotes de biblioteca ou vários pacotes binários de uma fonte, vale a pena conferir.

    
por 31.12.2009 / 11:28
1

O método do pacote base comum, conforme descrito por Phil, é provavelmente a melhor opção, no entanto, se você marcar um pacote como substituindo o outro permitirá que o pacote B sobrescreva os arquivos pertencentes ao pacote A. Claro, isso é mais uma solução rápida do que uma solução de longo prazo.

    
por 04.01.2010 / 05:31