Як я можу видалити пакунки за допомогою попередньо встановлених?


13

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

Він використовує наступний рядок для встановлення трьох пакетів як частини автоматизованої установки:

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

Я шукаю зворотне це, в основному зможу видалити пакети як частину автоматизованої установки.

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


Однозначно, як би я пішов про це. Не великий за попередньо встановлений. Я використовую псевдопакети і починаю з базової установки, у якій немає нічого, чого я не хочу.
RobotHumans

Ніхто з команди настільних ПК або сервера не розглядав це питання?
Manish Sinha

Я спробував такий підхід для видалення пакунків, але він не працює для мене :(. Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
Maverick

Відповіді:


13

Немає можливості очистити або видалити пакет із попередньо встановленого сценарію конфігурації, але ви можете використовувати цю команду ....

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

0

Прикладений приклад - лише приклад; він не містить усіх можливих комбінацій, а лише ті, що є більш поширеними.

Особисто я ніколи не намагався видаляти пакунки з інсталяції, тому не впевнений, що існує певна команда di для цього; це здається, що ваше d-i preseed late_commandмає працювати. Швидкий пошук ді-документів нічого не дав ... Але, звичайно, Колін знав би ;-)

Крім того, ви можете почати з базового сервера, а потім додати все, що завгодно:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.