Wie kann ich Pakete mit Preseed entfernen?

12

Ich richte ein automatisiertes Voreinstellungssystem ohne Fragen ein und verwende das Voreinstellungssystem von Dustin Kirkland als Beispiel.

Er verwendet die folgende Zeile, um drei Pakete als Teil der automatisierten Installation zu installieren:

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

Ich suche das Gegenteil davon, im Grunde in der Lage zu sein, Pakete im Rahmen der automatisierten Installation zu entfernen.

  • Ich habe das Installationshandbuch überprüft
  • Ich habe dieses Beispiel vorab überprüft , aber es ist nicht klar, ob dies die kanonische Liste aller verfügbaren Optionen ist.

Ich denke, ich muss verwenden, um Dinge d-i preseed/late_command string apt-remove packagenamezu bereinigen, die ich nicht möchte, wenn die Installation abgeschlossen ist, aber ich bin mir nicht sicher

Jorge Castro
quelle
Auf jeden Fall, wie ich vorgehen würde. Nicht groß auf preseed. Ich verwende Pseudopakete und beginne mit einer Basisinstallation, die nichts enthält, was ich nicht möchte.
RobotHumans
Niemand vom Desktop- oder Serverteam hat sich diese Frage angesehen?
Manish Sinha
Ich habe diesen Ansatz versucht, um Pakete zu entfernen, aber es funktioniert nicht für mich :(. Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
Maverick

Antworten:

13

Es gibt keine Option zum Löschen oder Löschen eines Pakets im vordefinierten Konfigurationsskript, aber Sie können diesen Befehl verwenden ....

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

Beispiel:

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

Sie können auch ein Skript ausführen:

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

oder installieren Sie eine Gruppe von DEB-Dateien:

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
quelle
0

Das gedrückte Beispiel ist nur ein Beispiel. Es enthält nicht alle möglichen Di-Kombinationen, sondern nur die gebräuchlicheren.

Persönlich habe ich nie versucht, Pakete aus einer Installation zu entfernen, daher bin ich mir nicht sicher, ob es einen bestimmten Befehl di gibt. Es klingt so, als ob du arbeiten d-i preseed late_commandsolltest. Eine schnelle Suche in den Dokumenten brachte nichts hervor ... Aber natürlich würde Colin es wissen ;-)

Alternativ können Sie von einem Basisserver aus starten und dann hinzufügen, was Sie möchten:

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