Estoy creando un paquete Debian que depende de libmysqlcppconn7v5
. Lo estoy construyendo en Ubuntu que tiene libmysqlcppconn7v5
1.1.9, sin embargo, está diseñado para instalarse en Debian que tiene libmysqlcppconn7v5
1.1.7.
debian/control
contiene la siguiente línea:
Depends: ${shlibs:Depends}, ${misc:Depends}, libmysqlcppconn7v5 (>= 1.1.7)
Cuando se crea el paquete, todavía tiene la dependencia libmysqlcppconn7v5 (>= 1.1.9)
¿Cómo puedo forzarlo a que dependa de una versión de paquete inferior a la que instalé cuando construí el paquete?
Respuesta aceptada:
Si shlibs:Depends
termina especificando la versión 1.1.9 o posterior de libmysqlcppconn7v5
, eso (teóricamente) significa que el binario que creaste usa un símbolo que solo está disponible en la versión 1.1.9 o posterior. Por lo tanto, su paquete no funcionará necesariamente en Debian con libmysqlcppconn7v5
1.1.7, incluso si anula las dependencias. (Estoy calificando esto de alguna manera ya que el paquete no proporciona símbolos o archivos shlibs, por lo que las heurísticas no son válidas).
Como regla general, debe compilar su paquete en Debian si desea instalarlo en Debian. Esto no es tan difícil de hacer en Ubuntu; echa un vistazo a debootstrap
, sbuild
y pbuilder
. pbuilder
en particular, se puede configurar fácilmente para construir sobre múltiples distribuciones.
Si realmente quiere anular shlibs:Depends
, puede editar .substvars
archivo que se genera durante la compilación, después de dpkg-shlibdeps
ha ejecutado:
override_dh_shlibdeps:
dh_shlibdeps
sed -i s/1.1.9/1.1.7/g debian/yourpackage.substvars