deb build-error

deb - ¿Por qué dh_usrlocal está lanzando un error de compilación?



build-error (3)

No se permite que un paquete adecuado de Debian genere cosas allí, sino directorios vacíos. Por eso se queja de que no puede eliminar el directorio. No espera que los archivos estén allí. Lo único que puede tener es un directorio en / usr / local y eso es lo que dh_usrlocal trata de manejar pero no debería tener archivos.

Los usuarios solo ponen archivos en / usr / local /.

También creo que si tiene el nombre usr / local en la ruta de su directorio, también causará el error, aunque no sea el usr / local correcto. Un ejemplo de lo que podría causar el problema también. Creo que la expresión regular en el software de compilación busca usr / local.

/var/tmp/usr/local/

Sé que esta es una publicación antigua, pero ocupa el puesto número 1 en google, por lo que necesita una buena respuesta para que la gente resuelva este problema rápidamente.

Estoy tratando de compilar un paquete deb para mi servidor. Cuando voy a compilar, todo se ve bien hasta que llega a dh_usrlocal La compilación se detiene y devuelve un error. El problema es que estoy intentando esto por primera vez y realmente no sé dónde buscar el problema.

Esta es la salida de mi terminal, también incluí el comando que ejecuté en la parte inferior de la salida.

make[2]: Leaving directory `/home/ian/Desktop/scst-2.1.0/src'' make[1]: Leaving directory `/home/ian/Desktop/scst-2.1.0'' dh_install dh_installdocs dh_installchangelogs dh_installexamples dh_installman dh_installcatalogs dh_installcron dh_installdebconf dh_installemacsen dh_installifupdown dh_installinfo dh_pysupport dh_installinit dh_installmenu dh_installmime dh_installmodules dh_installlogcheck dh_installlogrotate dh_installpam dh_installppp dh_installudev dh_installwm dh_installxfonts dh_bugfiles dh_lintian dh_gconf dh_icons dh_perl dh_usrlocal dh_usrlocal: debian/scst/usr/local/include/scst/scst.h is not a directory dh_usrlocal: debian/scst/usr/local/include/scst/scst_user.h is not a directory dh_usrlocal: debian/scst/usr/local/include/scst/Module.symvers is not a directory dh_usrlocal: debian/scst/usr/local/include/scst/scst_debug.h is not a directory dh_usrlocal: debian/scst/usr/local/include/scst/scst_const.h is not a directory dh_usrlocal: debian/scst/usr/local/include/scst/scst_sgv.h is not a directory rmdir: failed to remove `debian/scst/usr/local/include/scst'': Directory not empty dh_usrlocal: rmdir debian/scst/usr/local/include/scst returned exit code 1 make: *** [binary] Error 1 dpkg-buildpackage: error: debian/rules binary gave error exit status 2 ian@vm01:~/Desktop/scst-2.1.0$ sudo dpkg-buildpackage -rfakeroot

Cualquier ayuda sería apreciada.


debe omitir la ejecución de dh_usrlocal. para hacerlo, simplemente agregue esto a debian / rules: override_dh_usrlocal:

De manera general, si tiene un problema con un objetivo específico, simplemente lo anula agregando override_ {target} en su debian / rules.
ejemplo, tienes un problema con dh_icons. simplemente agrega esto en tu debian / rules

override_dh_icons: {insert your processing commands or do nothing to skip it when building package}


IMPORTANTE : este error SOLO se produce cuando intenta instalarlo en /usr/local/

/usr/local/lib/python3/dist-packages/ mi paquete para instalar desde /usr/local/lib/python3/dist-packages/ a /usr/lib/python3/dist-packages y el error desapareció. dh_usrlocal parece estar roto o mi paquete no cumple con las reglas que espera.

Comencé a recibir el error después de agregar un archivo package.install a mi paquete debian para que copiara el contenido del paquete al sistema de archivos. (Estaba instalando a /usr/local/ en ese momento)

Contenido de mi archivo de instalación cuando falló:

usr/* usr/

Contenidos cuando funciona correctamente:

usr/ usr/

Estructura de archivos del paquete debian:

packagename-0.1/ debian/ usr/ local/ lib/ python3/ packagename/

Edición: esto parece funcionar solo cuando se copian directorios raíz. Una vez que trato de especificar el copiado pasado usr /, se rompe con el mismo error. Vea la parte superior de la respuesta para encontrar mi solución.