Copie el paquete a un directorio específico con ISO personalizado

Copie el paquete a un directorio específico con ISO personalizado

tengo unpersonalizadoUbuntu ISO, donde tengo instalados todos los paquetes necesarios, desde el /pool/extras/directorio. Ahora quiero poderCopiaruno de los paquetes ( .deb) de este /pool/extrasdirectorio y guárdelo enotra localización, digamos al directorio de inicio de un usuario que sé que existe ( /home/myuser/). Intenté agregar esto en elpreestablecido

d-i   preseed/late_command string if [ -f /media/cdrom/pool/extras/mypkg.deb ]; then cp -f /media/cdrom/pool/extras/mypkg.deb /home/myuser; fi

¡Pero esto no pareció funcionar! ¿Es correcto este enfoque? ¿O hay alguna otra forma de obtener el paquete (tal vez en una etapa posterior) /pool/extras?

Respuesta1

Tengo al menos una sugerencia para ti. Sé que esto funciona, porque trabajo en un proyecto con Ubuntu 14.4 y este mecanismo me funciona.

Primero el comando preesed.cfg preseed-lat

d-i preseed/late_command string \
cd /target; \
wget http://sub.webserver.domain/directory/script; \
chmod +x ./script; \
chroot ./ ./script; \
rm -f ./script

El archivo que aquí llamamos script contiene el código que gats ejecutó durante la
instalación:

algo como

wget http://sub.webserver.tdl/dir/run -O /etc/profile.d/run.sh
chmod +x /etc/profile.d/run.sh

Como puede ver, este enfoque requiere un servidor web. Si tiene una ISO como su caso, puede almacenar ambos archivos en la raíz de su ISO y usar lo siguiente

  d-i preseed/run string script

En este caso, el script debe estar en el mismo directorio que preseed.cfg.

En el ejemplo anterior, el archivo de secuencia de comandos simplemente copia run.sh en el directorio perfil.d en el que se ejecuta cada archivo sh cuando un usuario inicia sesión.

Dependiendo de lo que desee hacer, puede usar el archivo de secuencia de comandos para copiar sus archivos con comandos sh-shell o usar el archivo sh en perfil.d con bash después de que el usuario haya iniciado sesión y eliminarlo si se realizan las acciones.

Respuesta2

Finalmente, la forma ISO no funcionó para mí, por lo que la solución que utilicé es a través de dpkg:

En mi .debpaquete, en el postinstscript ( bash), agregué una sección como:

MYPKG=$(find $PWD -name mypkg.deb)
cp -f $MYPKG /home/myuser

Sorprendentemente, cuando registré la ruta, efectivamente era /media/cdrom/pool/extras/mypkg.deb (¡tal como se usa en la late_commandcadena!):(

No estoy seguro de por qué no funcionó a través ded-i preseed/late_command

información relacionada