Je construis un paquet Debian qui dépend de libmysqlcppconn7v5
. Je le construis sur Ubuntu qui a libmysqlcppconn7v5
1.1.9, cependant il est destiné à être installé sur Debian qui a libmysqlcppconn7v5
1.1.7.
debian/control
contient la ligne suivante :
Depends: ${shlibs:Depends}, ${misc:Depends}, libmysqlcppconn7v5 (>= 1.1.7)
Lorsque le paquet est construit, il a toujours la dépendance libmysqlcppconn7v5 (>= 1.1.9)
Comment puis-je le forcer à dépendre d'une version de package inférieure à celle que j'ai installée lors de la construction du package ?
Réponse acceptée :
Si shlibs:Depends
finit par spécifier la version 1.1.9 ou ultérieure de libmysqlcppconn7v5
, cela signifie (théoriquement) que le binaire que vous avez construit utilise un symbole qui n'est disponible que dans la version 1.1.9 ou ultérieure. Donc votre paquet ne fonctionnera pas forcément sur Debian avec libmysqlcppconn7v5
1.1.7, même si vous remplacez les dépendances. (Je nuance quelque peu car le paquet ne fournit pas de symboles ou de fichiers shlibs, donc les heuristiques ne sont pas valides.)
En règle générale, vous devez compiler votre paquet sur Debian si vous souhaitez l'installer sur Debian. Ce n'est pas si difficile à faire sur Ubuntu; jetez un oeil à debootstrap
, sbuild
et pbuilder
. pbuilder
en particulier, peut facilement être configuré pour s'appuyer sur plusieurs distributions.
Si vous vraiment voulez remplacer shlibs:Depends
, vous pouvez modifier le .substvars
fichier généré lors de la construction, après dpkg-shlibdeps
a exécuté :
override_dh_shlibdeps:
dh_shlibdeps
sed -i s/1.1.9/1.1.7/g debian/yourpackage.substvars