Làm thế nào tôi có thể loại bỏ các gói bằng cách sử dụng preseed?


12

Tôi đang thiết lập một hệ thống preseed "không có câu hỏi" tự động và sử dụng máy chủ của Dustin Kirkland là một ví dụ.

Anh ta sử dụng dòng sau để cài đặt ba gói như một phần của cài đặt tự động:

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

Tôi đang tìm kiếm nghịch đảo của điều này, về cơ bản có thể loại bỏ các gói như là một phần của cài đặt tự động.

Tôi nghĩ rằng tôi cần phải sử dụng d-i preseed/late_command string apt-remove packagenameđể dọn dẹp những thứ tôi không muốn khi cài đặt xong, nhưng tôi không chắc


Chắc chắn làm thế nào tôi sẽ đi về nó. Không lớn trên preseed mặc dù. Tôi sử dụng giả hành và bắt đầu từ một bản cài đặt cơ bản không có bất cứ thứ gì tôi không muốn.
RobotHumans

Không ai trong nhóm máy tính để bàn hoặc nhóm máy chủ nhìn vào câu hỏi này?
Manish Sinha

Tôi đã thử cách tiếp cận này để xóa các gói nhưng nó không hiệu quả với tôi :(. Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
Maverick

Câu trả lời:


13

Không có tùy chọn để xóa o xóa một gói trong tập lệnh cấu hình được chèn sẵn nhưng bạn có thể sử dụng lệnh này ....

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

thí dụ :

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

bạn cũng có thể chạy một tập lệnh:

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

hoặc cài đặt một nhóm các tệp 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

Ví dụ được nhấn chỉ là một ví dụ; nó không chứa tất cả các kết hợp di có thể, mà chỉ là những kết hợp phổ biến hơn.

Cá nhân, tôi chưa bao giờ cố gắng loại bỏ các gói khỏi cài đặt, vì vậy tôi không chắc chắn có một lệnh di cụ thể cho nó; Nghe có vẻ như bạn d-i preseed late_commandnên làm việc. Một tìm kiếm nhanh trên các tài liệu di không tạo ra bất cứ điều gì ... Nhưng, tất nhiên, Colin sẽ biết ;-)

Ngoài ra, bạn có thể bắt đầu từ một máy chủ cơ bản, sau đó thêm bất cứ điều gì bạn muốn:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.