not found ubuntu debian package dpkg

ubuntu - found - install.deb debian



dpkg-shlibdeps: error: no se encontró información de dependencia para (8)

En lugar de simplemente ignorar el error, es posible que también desee corregir el origen del error, que generalmente es un archivo package.shlibs o package.symbols faltante o incorrecto en el paquete que contiene la biblioteca compartida que desencadena el error.

[1] documenta cómo dpkg-shlibdeps usa el package.shlibs resp. package.symbols , files, [2] documenta el formato de los archivos package.shlibs y package.symbols .

Estoy compilando un paquete Deb y cuando ejecuto dpkg-buildpackage obtengo:

dpkg-shlibdeps: error: no dependency information found for /usr/local/lib/libopencv_highgui.so.2.3 ... make: *** [binary-arch] Error 2

Esto sucede porque instalé la dependencia manualmente. Sé que el problema se solucionará si instalo la dependencia (o uso la instalación de verificación), y quiero generar el paquete de todos modos porque no estoy interesado en la verificación de la dependencia. Sé que puedo dar a dpkg-shlibdeps la opción --ignore-missing-info que evita un error si no se puede encontrar la información de dependencia. Pero no sé cómo pasar esta opción a dpkg-shlibdeps ya que estoy usando dpkg-buildpackage y las llamadas a dpkg-buildpackage dpkg-shlibdeps ...

Ya lo he intentado:

sudo dpkg-buildpackage -rfakeroot -d -B

Y con:

export DEB_DH_MAKESHLIBS_ARG=--ignore-missing-info

como root

¿Algunas ideas?


Finalmente lo hice de la manera brutal:

Edité el script / usr / bin / dpkg-shlibdeps, cambiando esto:

my $ignore_missing_info = 0;

a

my $ignore_missing_info = 1;


Otra forma más, sin modificar los scripts de construcción, simplemente creando un archivo.

Puede especificar anulaciones shlib locales creando debian/shlibs.local con el siguiente formato: library-name soname-version dependencies

Por ejemplo, dado el siguiente (recortado) ldd /path/to/binary salida ldd /path/to/binary

libevent-2.0.so.5 => /usr/lib/libevent-2.0.so.5 (0x00007fc9e47aa000) libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007fc9e4161000) libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fc9e3b1a000)

El contenido de debian/shlibs.local sería:

libevent-2.0 5 libevent-2.0 libgcrypt 20 libgcrypt libpthread 0 libpthread

La lista de "dependencias" (tercera columna) no necesita ser 100% precisa, solo uso el nombre de la biblioteca de nuevo.

Por supuesto, esto no es necesario en un sistema de Debian que tenga estas cosas definidas en /var/lib/dpkg/info (que puede usarse como inspiración para estas anulaciones). El mío no es un sistema de Debian sano.


Puedes usar esto:

dh_makeshlibs -a -n

exactamente después de dh_install


Si desea que simplemente ignore ese indicador, cambie la línea debian / rules de:

dh_shlibdeps

a:

dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info


Usted acaba de escribir mal su exportación. Debería ser así:

export DEB_DH_SHLIBDEPS_ARGS_ALL=--dpkg-shlibdeps-params=--ignore-missing-info


dpkg-buildpackage usa make para procesar debian / rules. en este proceso, dpkg-buildpackage podría llamar a dpkg-shlibdeps.

por lo tanto, la forma correcta de aprobar modificar una parte del proceso de creación de paquetes es editar debian / rules. es difícil darle más pistas, sin ver las debian / rules reales.


utilizar:

override_dh_shlibdeps: dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

si su archivo de reglas no tiene la llamada dh_shlibdeps en él. Ese suele ser el caso si has

%: dh $@

como única regla en él.