Substitui a versão do pacote de dependências definida por shlibs: Depende em deb

1

Estou construindo um pacote Debian que depende de libmysqlcppconn7v5 . Eu estou construindo no Ubuntu que tem libmysqlcppconn7v5 1.1.9, no entanto, ele deve ser instalado no Debian que possui libmysqlcppconn7v5 1.1.7.

debian/control contém a seguinte linha:

Depends: ${shlibs:Depends}, ${misc:Depends}, libmysqlcppconn7v5 (>= 1.1.7)

Quando o pacote é criado, ele ainda tem dependência libmysqlcppconn7v5 (>= 1.1.9)

Como posso forçá-lo a ter uma dependência na versão inferior do pacote que eu instalei ao construir o pacote?

    
por Milan 30.07.2018 / 17:31

1 resposta

0

Se shlibs:Depends acabar especificando a versão 1.1.9 ou posterior de libmysqlcppconn7v5 , isso (teoricamente) significa que o binário que você construiu usa um símbolo que está disponível apenas na versão 1.1.9 ou posterior. Portanto, seu pacote não funcionará necessariamente no Debian com libmysqlcppconn7v5 1.1.7, mesmo que você substitua as dependências. (Estou qualificando isso um pouco, já que o pacote não fornece símbolos ou arquivos shlibs, portanto, as heurísticas não são válidas.)

Como regra geral, você precisa construir seu pacote no Debian se você quiser instalá-lo no Debian. Isso não é tão difícil de fazer no Ubuntu; Dê uma olhada em debootstrap , sbuild e pbuilder . pbuilder em particular pode ser facilmente configurado para construir múltiplas distribuições .

Se você realmente quiser substituir shlibs:Depends , poderá editar o arquivo .substvars gerado durante a criação, depois que dpkg-shlibdeps tiver sido executado:

override_dh_shlibdeps:
    dh_shlibdeps
    sed -i s/1.1.9/1.1.7/g debian/yourpackage.substvars
    
por 30.07.2018 / 17:49

Tags