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

0

Eu tenho um ISO do Ubuntu customizado , no qual tenho todos os meus pacotes requeridos sendo instalados, no diretório /pool/extras/ . Agora, eu quero poder copiar um dos pacotes ( .deb ) deste diretório /pool/extras e salvá-lo em outro local , dizer para o diretório home de um usuário que eu conheço existe ( /home/myuser/ ). Eu tentei adicionar isso no preseed

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 parece funcionar !, esta abordagem está correta? ou existe alguma outra maneira que eu possa pegar o pacote (em um estágio posterior, talvez) de /pool/extras ?

    
por vyom 08.12.2014 / 10:16

2 respostas

1

Eu tenho pelo menos uma sugestão para você. Eu sei que isso funciona, porque eu trabalho em um projeto com o 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 enquanto o arquivo 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ê vê, essa abordagem requer um servidor da web. Se você tem um ISO como seu caso, ju pode armazenar ambos os 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 que o preseed.cfg

No exemplo acima, o arquivo de script 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 o bash depois que o usuário tiver loggd in e deletá-lo se as ações está feito.

    
por Josh 28.12.2014 / 12:35
1

Por fim, a maneira ISO não funcionou para mim, então a solução alternativa que usei foi por meio de dpkg :

No meu pacote .deb , no script postinst ( bash ), adicionei uma seção como:

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

surpreendentemente, quando eu registrei o caminho, era de fato /media/cdrom/pool/extras/mypkg.deb (como usado na string late_command !) :(

Não sei por que não funcionou por meio de d-i preseed/late_command

    
por vyom 30.12.2014 / 07:23