Tengo un paquete Debian con un script postinst que crea enlaces simbólicos. Cuando intento instalar el .deb
paquete --root
(ya que quiero cambiar la ubicación donde se debe instalar el paquete), aparece este error:
dpkg (subprocess): unable to execute installed post-installation script: No such file or directory
subprocess installed post-installation script returned error exit status 2
dpkg
está intentando encontrar el script postinst en /var/lib/dpkg/info
. Lo que no puedo entender es que, según la dpkg
página de manual, el uso de --root
la opción también cambia admindir
a. newdir/var/lib/dpkg
Entonces, ¿por qué intenta encontrar el script postinst en /var/lib/dpkg/info/
?
Intenté crear otro paquete que no contiene este script de mantenimiento y lo instalé usando la misma -i --root=newdir
opción y no arroja ningún error.
Por favor, déjame saber cómo puedo hacer que esto funcione.
Respuesta1
dpkg
Encontré el script postinst /your/root/var/lib/dpkg/info
e intenté ejecutarlo. Parece que el problema es uncargador faltante: dpkg
encuentra el script postinst pero luego aparece el error "No existe tal archivo o directorio" cuando intenta ejecutarlo porque el programa intérprete del script no está presente (por ejemplo, es un script Python y python-minimal
no está instalado). Con un instdir alternativo, el intérprete debe estar presente en el instdir (dpkg hace chroots al instdir antes de ejecutar los scripts del paquete).
Si el intérprete no lo proporciona un paquete etiquetado Essential
, asegúrese de que su paquete dependa del paquete que proporciona el intérprete.