Crie um pacote debian com dependência para uma versão mais antiga do pacote python-cherrypy3

1

Eu tenho um programa com um pacote debian no meu repositório pessoal que depende do python-cherrypy3. No entanto, a versão 3.5.0 do python-cherrypy3 fornecida com o Ubuntu 16.04 tem um bug sério e não corrigido que impede meu programa de criar um servidor web HTTPS. Eu coloquei a versão 3.2.2 de python-cherrypy3 no meu repositório pessoal. Então coloque um

Depends: python-cherrypy3 (<< 3.2.5)

no arquivo debian/control do meu pacote. O bug começa na versão 3.2.5 do cherrypy, então todas as versões inferiores a esta versão são aceitáveis. Mas o Ubuntu 16.04 apt-get não pode resolver a dependência e ainda prefere a versão mais recente 3.5.

The following packages have unmet dependencies:
 my-package : Depends: python-cherrypy3 (< 3.2.5)
E: Unable to correct problems, you have held broken packages.

Se eu usar apt-get install python-cherrypy3=3.2.2 e instalar uma versão antiga do cherrypy do meu repositório, a instalação do meu pacote funcionará bem. Posso de alguma forma fazer isso automaticamente, então quando alguém emite um apt-get install my-package apt instala automaticamente a versão 3.2.2 do meu repositório?

    
por Mohammad 06.06.2016 / 13:04

1 resposta

2

Isso não pode ser feito apenas com as dependências do seu pacote. Sem configuração especial, apt-get sempre prefere a versão mais alta disponível, portanto, mesmo que seu pacote dependa de python-cherrypy3 (<< 3.2.5) , ele escolherá a versão mais alta de python-cherrypy3 disponível. E como o Ubuntu 15.10 e acima tem apenas 3.5.0+ , é isso que você terá.

O que você pode fazer é fornecer uma versão 3.2.5 empacotada de python-cherrypy3 em seu repositório pessoal, que usa um número de época , de modo que é preferível ao pacote mais novo. Então, dependa disso.

    
por muru 06.06.2016 / 13:24