paquete debian creando directorios necesarios en preinst
Pregunta
Tengo la siguiente estructura de Debian:
- debian / usr / share / test
- debian / usr / share / test / test
- debian / usr / share / test / test / a
- debian / usr / share / test / test / b
Después de compilar el paquete usando dpkg-deb --build e instalarlo usando dpkg -i, no parece crear la prueba de carpetas automáticamente si no existen. ¿Necesito crearlos manualmente en el script preinst?
ACTUALIZACIÓN: El problema se debía a que preinst tenía un error, por lo que desempacar no tuvo la oportunidad de suceder.
Laurent
Solución
Mira un ejemplo mío aquí .
debian/DEBIAN
debian/usr/bin
debian/usr/lib
Tienes un par de opciones:
- Rellene los directorios con los archivos antes de generar el paquete (paquete binario)
- Cree un paquete source donde se llamará a MAKE para compilar el paquete e instalarlo.
En el primer caso, no necesita crear los directorios a través de un script preinst
: el administrador de paquetes creará la jerarquía de carpetas si es necesario cuando el paquete esté instalado.
En el segundo caso, deberá usar mkdir -p
para crear la jerarquía de carpetas durante la fase install
.
He pasado por 3 formas diferentes de empaquetar repositorios Debian durante el último año y créanme, los detalles a tener en cuenta son numerosos. Un alivio fue conocer a Launchpad y su proceso de publicación de PPA.
Otros consejos
Necesita aquellos en el paquete llamado tmp
o el mismo que su primer paquete listado en debian / control, dependiendo de la versión del modo de compatibilidad de Debhelper que elija.
Por ejemplo. una llamada de uno de los archivos de ejemplo de debhelper
:
$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install
Te estás perdiendo ese nivel de indirección aquí.