Bagaimana saya bisa menghapus paket menggunakan preseed?


12

Saya sedang menyiapkan sistem preseed "tanpa pertanyaan" otomatis dan menggunakan server Dustin Kirkland sebagai contoh.

Dia menggunakan baris berikut untuk menginstal tiga paket sebagai bagian dari instalasi otomatis:

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

Saya mencari kebalikan dari ini, pada dasarnya dapat menghapus paket sebagai bagian dari instalasi otomatis.

  • Saya telah memeriksa Panduan Instalasi
  • Saya telah memeriksa contoh ini preseed , tetapi tidak jelas apakah ini adalah daftar kanonik dari setiap opsi yang tersedia.

Saya pikir saya perlu menggunakan d-i preseed/late_command string apt-remove packagenameuntuk membersihkan hal-hal yang saya tidak inginkan ketika instalasi selesai, tetapi saya tidak yakin


Jelas bagaimana saya akan melakukannya. Tidak besar pada preseed. Saya menggunakan pseudopackages dan mulai dari instalasi dasar yang tidak memiliki apa pun yang tidak saya inginkan.
RobotHumans

Tidak seorang pun dari tim desktop atau tim server melihat pertanyaan ini?
Manish Sinha

Saya sudah mencoba pendekatan ini untuk menghapus paket tetapi tidak berfungsi untuk saya :(. Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
Maverick

Jawaban:


13

Tidak ada opsi untuk menghapus atau menghapus suatu paket dalam skrip konfigurasi yang telah dipraseksi tetapi Anda dapat menggunakan perintah ini ....

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

contoh:

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

Anda juga dapat menjalankan skrip:

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

atau instal sekelompok file 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

Contoh yang ditekan hanyalah contoh; itu tidak mengandung semua kemungkinan kombinasi, tetapi hanya yang lebih umum.

Secara pribadi, saya belum pernah mencoba untuk menghapus paket dari instalasi, jadi saya tidak yakin ada perintah di khusus untuk itu; sepertinya Anda d-i preseed late_commandharus bekerja. Pencarian cepat pada dokumen itu tidak menghasilkan apa-apa ... Tapi, tentu saja, Colin akan tahu ;-)

Atau, Anda bisa mulai dari server dasar, dan kemudian menambahkan apa pun yang Anda inginkan:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.