Copie o pacote para um diretório específico com ISO personalizado

Copie o pacote para um diretório específico com ISO personalizado

eu tenho umpersonalizadoUbuntu ISO, onde tenho todos os meus pacotes necessários instalados, no /pool/extras/diretório. Agora, eu quero podercópia deum dos pacotes ( .deb) deste /pool/extrasdiretório e salve-o emoutro local, digamos, para o diretório inicial de um usuário que eu sei que existe ( /home/myuser/). Eu tentei adicionar isso nopré-configuração

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

Mas isso não pareceu funcionar! Essa abordagem está correta? ou existe alguma outra maneira de obter o pacote (talvez posteriormente) /pool/extras?

Responder1

Tenho pelo menos uma sugestão para você. Eu sei que isso funciona, porque trabalho em um projeto com Ubuntu 14.4 e esse mecanismo funciona para mim.

Primeiro o 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

O arquivo que chamamos de script aqui contém o código que o gats executou durante a
instalação:

algo como

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

como você pode ver, essa abordagem requer um servidor web. Se você tiver um ISO como seu caso, você pode armazenar os dois arquivos na raiz do seu ISO e usar o seguinte

  d-i preseed/run string script

Neste caso o script deve estar no mesmo diretório do preseed.cfg

No exemplo acima, o arquivo de script apenas copia run.sh para o diretório profile.d no qual cada arquivo sh está sendo executado quando um usuário está efetuando login.

Dependendo do que você deseja fazer, você pode usar o próprio arquivo de script para copiar seus arquivos com comandos sh-shell ou usar o arquivo sh em profile.d com bash depois que o usuário fizer login e excluí-lo se as ações forem executadas.

Responder2

Finalmente, o método ISO não funcionou para mim, então a solução alternativa que usei foi dpkg:

No meu .debpacote, no postinstscript ( bash), adicionei uma seção como:

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

surpreendentemente, quando registrei o caminho, ele era de fato /media/cdrom/pool/extras/mypkg.deb (conforme usado na late_commandstring!) :(

Não sei por que não funcionou viad-i preseed/late_command

informação relacionada