Jak mogę usunąć paczki używając wstępnie przygotowanego?

13

Konfiguruję zautomatyzowany system preseed „bez zadawania pytań” i jako przykład wykorzystuję serwer Dustina Kirklanda .

Używa następującego wiersza, aby zainstalować trzy pakiety w ramach instalacji automatycznej:

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

Szukam odwrotności tego, w zasadzie mogę usunąć pakiety w ramach automatycznej instalacji.

Myślę, że muszę użyć, d-i preseed/late_command string apt-remove packagenameaby wyczyścić rzeczy, których nie chcę po zakończeniu instalacji, ale nie jestem pewien

Jorge Castro
źródło
Zdecydowanie, jak bym to zrobił. Nie jest to jednak zbyt duże. Używam pseudopakietów i zaczynam od instalacji podstawowej, która nie zawiera niczego, czego nie chcę.
RobotHumans
Nikt z zespołu komputerowego ani serwera nie spojrzał na to pytanie?
Manish Sinha
Próbowałem tego podejścia, aby usunąć pakiety, ale to nie działa dla mnie :(. Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
Maverick

Odpowiedzi:

13

Nie ma możliwości wyczyszczenia lub usunięcia pakietu w wstępnie ustawionym skrypcie konfiguracyjnym, ale możesz użyć tego polecenia ....

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

przykład:

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

możesz również uruchomić skrypt:

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

lub zainstaluj grupę plików 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
źródło
0

Przykład wciśnięty jest tylko przykładem; nie zawiera wszystkich możliwych kombinacji di, ale tylko te bardziej powszechne.

Osobiście nigdy nie próbowałem usuwać pakietów z instalacji, więc nie jestem pewien, czy istnieje dla nich specjalne polecenie di; to brzmi jak twoje d-i preseed late_commandpowinno działać. Szybkie wyszukiwanie dokumentów nie dało nic ... Ale oczywiście Colin by wiedział ;-)

Alternatywnie możesz zacząć od podstawowego serwera, a następnie dodać, co chcesz:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
hggdh
źródło