¿Puedo llamar a otros comandos dpkg o apt- * dentro de mis scripts preinst?

9

Como parte de mi archivo .deb personalizado (interno) que se implementará en dispositivos Ubuntu 12.04, necesito agregar varios repositorios PPA, ejecutar apt-get update y luego instalar paquetes desde esos PPA.

¿Se puede hacer esto dentro de los scripts .preinst o .postinst en mi archivo .deb?

Asumo que cuando se instala mi archivo .deb ( sudo dpkg -i testing.deb) que algunas cerraduras o mecanismos existen probable que me impide llamar a ciertos comandos como add-apt-repository, apt-get update, y apt-get install.

¿Es esta una suposición correcta?

Stéphane
fuente
Relacionado: stackoverflow.com/questions/18599599/…
Javier López

Respuestas:

7

Estás en lo correcto. No se supone que los scripts de mantenimiento realicen ningún cambio en los estados apt o dpkg, aparte de los cambios que se realizarán al instalar el paquete de todos modos.

Sin /etc/apt/sources.list.dembargo, instalar un archivo está bien. La mayoría de los paquetes que cumplen una función como "instalar este paquete para agregar el repositorio APT X a su sistema" simplemente lo hacen (en lugar de llamar add-apt-repository). También es común soltar la clave pública GPG utilizada para iniciar sesión en el repositorio /etc/apt/trusted.gpg.d.

Si desea simplificar que el usuario realice los pasos de instalación adicionales para su software, es posible que solo desee enviar un script que haga el trabajo y decirle al usuario que ejecute el script manualmente.

Pero si realmente, realmente desea llamar apt-get updateo apt-get installetc. automáticamente, y no le importa que su paquete sea totalmente inaceptable en Debian o Ubuntu, y que sus usuarios estén de acuerdo con que el paquete actúe de esa manera, tal vez podría poner algo en el /etc/cron.dque verifica si hay bloqueos de apt o dpkg existentes, y si no se mantiene ninguno, realiza los pasos de instalación adicionales y hace los arreglos para que esos pasos no se vuelvan a realizar. No recomiendo ese enfoque.

el paul
fuente