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?
apt
dpkg
deb
add-apt-repository
Stéphane
fuente
fuente
Respuestas:
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.d
embargo, 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 llamaradd-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 update
oapt-get install
etc. 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.d
que 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.fuente