Как я могу удалить пакеты, используя preseed?

12

Я настраиваю автоматизированную систему предпосевной передачи без вопросов и в качестве примера использую серверную рассылку Дастина Киркленда .

Он использует следующую строку для установки трех пакетов в рамках автоматической установки:

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

Я ищу обратное этому, в основном смогу удалить пакеты как часть автоматической установки.

  • Я проверил руководство по установке
  • Я проверил этот пример preseed , но не ясно, является ли это каноническим списком каждой доступной опции.

Я думаю, что мне нужно использовать d-i preseed/late_command string apt-remove packagenameдля очистки вещи, которые я не хочу, когда установка завершена, но я не уверен

Хорхе Кастро
источник
Определенно, как бы я поступил по этому поводу. Не большой на preseed все же. Я использую псевдопакеты и начинаю с базовой установки, в которой нет ничего, что мне не нужно.
RobotHumans
Никто из настольной команды или команды сервера не смотрел на этот вопрос?
Маниш Синха
Я пробовал этот подход для удаления пакетов, но он не работает для меня :(. Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
Maverick

Ответы:

13

Невозможно выполнить очистку или удалить пакет в сценарии конфигурации preseed, но вы можете использовать эту команду ....

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

пример :

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

Вы также можете запустить скрипт:

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

или установите группу файлов 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
источник
0

Приведенный пример является просто примером; он содержит не все возможные комбинации ди, но только те, которые более распространены.

Лично я никогда не пытался удалить пакеты из установки, поэтому я не уверен, что для этого есть специальная команда di; Похоже, вы d-i preseed late_commandдолжны работать. Быстрый поиск по документам ничего не дал ... Но, конечно, Колин знал бы ;-)

Кроме того, вы можете начать с базового сервера, а затем добавить все, что вы хотите:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
hggdh
источник