ฉันจะลบแพ็กเกจโดยใช้ preseed ได้อย่างไร


13

ฉันตั้งค่าระบบ preseed อัตโนมัติ "ไม่มีคำถามที่ถาม" และใช้preseed เซิร์ฟเวอร์ของ Dustin Kirkland เป็นตัวอย่าง

เขาใช้บรรทัดต่อไปนี้เพื่อติดตั้งสามแพ็คเกจเป็นส่วนหนึ่งของการติดตั้งอัตโนมัติ:

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

ฉันกำลังมองหาสิ่งที่ตรงกันข้ามนี้โดยทั่วไปสามารถลบแพคเกจเป็นส่วนหนึ่งของการติดตั้งอัตโนมัติ

ฉันคิดว่าฉันต้องใช้d-i preseed/late_command string apt-remove packagenameเพื่อล้างสิ่งที่ฉันไม่ต้องการเมื่อติดตั้งเสร็จ แต่ฉันไม่แน่ใจ


แน่นอนว่าฉันจะไปเกี่ยวกับเรื่องนี้ ไม่ว่าจะเป็นอะไรก็ตาม ฉันใช้ pseudopackages และเริ่มจากการติดตั้งพื้นฐานที่ไม่มีอะไรที่ฉันไม่ต้องการ
RobotHumans

ไม่มีใครในทีมเดสก์ท็อปหรือทีมเซิร์ฟเวอร์ที่ดูคำถามนี้
Manish Sinha

ฉันได้ลองวิธีการนี้เพื่อลบแพ็กเกจ แต่มันไม่ทำงานสำหรับฉัน :(. gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
Maverick

คำตอบ:


13

ไม่มีตัวเลือกในการลบ o ลบแพ็คเกจในสคริปต์การกำหนดค่าล่วงหน้า แต่คุณสามารถใช้คำสั่งนี้ ...

di preseed / ล่าช้า _ คำสั่ง

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 ทั้งหมดที่เป็นไปได้ แต่เพียงผู้ที่ร่วมกันมากขึ้น

โดยส่วนตัวฉันไม่เคยพยายามที่จะลบแพ็คเกจออกจากการติดตั้งดังนั้นฉันไม่แน่ใจว่ามีคำสั่ง di เฉพาะสำหรับมัน ดูเหมือนว่าคุณd-i preseed late_commandควรจะทำงาน การค้นหาอย่างรวดเร็วในเอกสาร di ไม่ได้ผลิตอะไร ... แต่แน่นอนโคลินจะรู้ ;-)

หรือคุณอาจเริ่มจากเซิร์ฟเวอร์พื้นฐานแล้วเพิ่มสิ่งที่คุณต้องการ:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.