Como posso remover pacotes usando preseed?


12

Estou configurando um sistema preseed automatizado "sem perguntas" e usando o servidor de Dustin Kirkland como um exemplo.

Ele usa a seguinte linha para instalar três pacotes como parte da instalação automatizada:

d-i pkgsel/include string byobu vim openssh-server

Eu estou procurando o inverso disso, basicamente, posso remover pacotes como parte da instalação automatizada.

Acho que preciso usar d-i preseed/late_command string apt-remove packagenamepara limpar coisas que não quero quando a instalação estiver concluída, mas não tenho certeza


Definitivamente como eu iria fazer isso. Não é grande em preseed embora. Uso pseudopacotes e começo de uma instalação básica que não tem nada que eu não queira.
— 21711 RobotHumans

Ninguém da equipe de desktop ou servidor olhou para esta pergunta?
— Manish Sinha

Eu tentei essa abordagem para remover pacotes, mas não está funcionando para mim :(. Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
— Maverick

Respostas:


13

Não há uma opção para excluir ou excluir um pacote no script de configuração preseed, mas você pode usar este comando ....

di preseed / late_command

This command is run just before the install finishes, but when there is
still a usable /target directory. You can chroot to /target and use it
directly, or use the apt-install and in-target commands to easily install
packages and run commands in the target system.
"in-target" means: chroot /target
d-i preseed/late_command string [in-target] foo

exemplo:

d-i preseed/late_command string \
            in-target apt-get remove packagename

você também pode executar um script:

d-i preseed/late_command string \
        in-target wget http://........./postinst.sh -O /root/postinst.sh; \
        in-target /bin/bash /root/postinst.sh

ou instale um grupo de arquivos DEB:

d-i preseed/late_command               string \
    for deb in /hd-media/*.deb; do cp $deb /target/tmp; \
    chroot /target dpkg -i /tmp/$(basename $deb); done

0

O exemplo pressionado é apenas um exemplo; ele não contém todas as combinações possíveis, mas apenas as mais comuns.

Pessoalmente, nunca tentei remover pacotes de uma instalação; portanto, não tenho certeza de que exista um comando di específico; parece que o seu d-i preseed late_commanddeve funcionar. Uma rápida pesquisa nos documentos não produziu nada ... Mas, é claro, Colin saberia ;-)

Como alternativa, você pode iniciar em um servidor básico e adicionar o que quiser:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.