Comment puis-je supprimer des packages à l'aide de préconfiguration?

13

J'installe un système de préconfiguration automatisé "sans poser de questions" et j'utilise le préconfiguration du serveur de Dustin Kirkland comme exemple.

Il utilise la ligne suivante pour installer trois packages dans le cadre de l'installation automatisée:

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

Je cherche l' inverse de cela, être capable de supprimer des packages dans le cadre de l'installation automatisée.

Je pense que je dois utiliser d-i preseed/late_command string apt-remove packagenamepour nettoyer des choses que je ne veux pas lorsque l'installation est terminée, mais je ne suis pas sûr

Jorge Castro
la source
Certainement comment j'y arriverais. Pas grand-chose cependant. J'utilise des pseudopackages et je commence à partir d'une installation de base qui n'a rien que je ne veux pas.
RobotHumans
Personne de l'équipe de bureau ou de l'équipe du serveur n'a regardé cette question?
Manish Sinha
J'ai essayé cette approche pour supprimer des paquets mais cela ne fonctionne pas pour moi :(. Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
Maverick

Réponses:

13

Il n'y a pas d'option pour purger ou supprimer un package dans le script de configuration prédéfini mais vous pouvez utiliser cette commande ....

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

exemple :

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

vous pouvez également exécuter un 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 installez un groupe de fichiers 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
hhlp
la source
0

L'exemple appuyé n'est qu'un exemple; il ne contient pas toutes les combinaisons di possibles, mais seulement celles les plus courantes.

Personnellement, je n'ai jamais essayé de supprimer des packages d'une installation, donc je ne suis pas sûr qu'il existe une commande di spécifique pour cela; il semble que vous d-i preseed late_commanddevriez travailler. Une recherche rapide sur les di docs n'a rien produit ... Mais, bien sûr, Colin le saurait ;-)

Alternativement, vous pouvez démarrer à partir d'un serveur de base, puis ajouter ce que vous voulez:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
hggdh
la source