Cách tự động hóa các tệp cấu hình đã thay đổi trong quá trình nâng cấp apt-get trong Ubuntu 12


13

Tôi thích sử dụng "dao tạo máy chủ đám mây tạo ..." để xây dựng một VM mới. Mẫu bootstrap của tôi bắt đầu với "bản cập nhật apt-get" và "nâng cấp apt-get -y".

Việc nâng cấp sau đó tạm dừng với:

10.190.113.11 Configuration file `/etc/nscd.conf'
10.190.113.11  ==> Modified (by you or by a script) since installation.
10.190.113.11  ==> Package distributor has shipped an updated version.
10.190.113.11    What would you like to do about it ?  Your options are:
10.190.113.11     Y or I  : install the package maintainer's version
10.190.113.11     N or O  : keep your currently-installed version
10.190.113.11       D     : show the differences between the versions
10.190.113.11       Z     : start a shell to examine the situation
10.190.113.11  The default action is to keep your current version.
10.190.113.11 *** nscd.conf (Y/I/N/O/D/Z) [default=N] ?

Vì vậy, có hai vấn đề thực sự:

Đầu tiên, tôi có thể lấy apt-get để làm một cái gì đó theo mặc định không? Rõ ràng không có cách nào để đưa ra câu trả lời.

Thứ hai, tôi thậm chí không biết câu trả lời đúng cho câu hỏi là gì. Các tập tin cấu hình nó thay thế đến từ một mẫu. Tôi vẫn chưa tìm kiếm "nscd" nào. (Có lẽ "Y" là câu trả lời đúng, nhưng nghiên cứu liên quan tại thời điểm của câu hỏi thật đáng ngại.)

Câu trả lời:


15

Bạn có thể truyền các đối số để tránh nhận được lời nhắc. Điều này làm việc cho tôi;

apt-get update
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

--force-confold(lựa chọn của tôi) sẽ đặt các câu hỏi "Bạn muốn làm gì về tệp cấu hình đã sửa đổi" thành mặc định N(giữ phiên bản hiện tại của bạn)

--force-confold: do not modify the current configuration file, the new version is installed with a .dpkg-dist suffix. With this option alone, even configuration files that you have not modified are left untouched. You need to combine it with --force-confdef to let dpkg overwrite configuration files that you have not modified.
--force-confnew: always install the new version of the configuration file, the current version is kept in a file with the .dpkg-old suffix.
--force-confdef: ask dpkg to decide alone when it can and prompt otherwise. This is the default behavior of dpkg and this option is mainly useful in combination with --force-confold.
--force-confmiss: ask dpkg to install the configuration file if it’s currently missing (for example because you have removed the file by mistake).

Cảnh báo - một số tệp cấu hình được sửa đổi có thể phá vỡ hệ thống của bạn nếu bị giữ lại & không tương thích với phiên bản gói cập nhật. Vui lòng kiểm tra nó trước khi triển khai trong các giải pháp tự động hóa.


5

Nếu bạn hoàn toàn không muốn trả lời bất kỳ câu hỏi tương tác nào, thì hãy đặt DEBIAN_FRONTENDbiến giao diện người dùng thành noninteractive.

Điều này có thể dễ dàng như DEBIAN_FRONTEND=noninteractive apt-get upgrade.

Bạn sẽ không nhận được tin nhắn và mặc định sẽ được chọn. Trong hầu hết các trường hợp, điều này có nghĩa là các tệp cấu hình của bạn sẽ không bị thay đổi và bạn sẽ bị bỏ lại các tệp có tên như *.dpkg-newđối với tất cả các vị trí mà tệp cấu hình không được chạm tới. Sau đó, bạn có thể giải quyết thủ công các thay đổi hoặc đẩy cấu hình cục bộ của mình sang hệ thống bằng hệ thống quản lý cấu hình hoặc bất cứ điều gì.

Thứ hai, tôi thậm chí không biết câu trả lời đúng cho câu hỏi là gì

Nhấn phím D sẽ hiển thị sự khác biệt, sau đó bạn có thể kiểm tra. Nếu bạn chắc chắn rằng bạn chưa bao giờ thay đổi tệp đó theo cách thủ công, việc chọn Y để thay thế tệp đó có thể an toàn (bạn đã xác minh bản sao lưu nâng cấp RIGHT !! ). Việc chọn N chỉ giữ tệp cũ cũng an toàn 95%, trừ khi gói có các thay đổi lớn, thường được ghi trong thay đổi / ghi chú phát hành mà bạn cũng đã đọc trước khi chạy lệnh nâng cấp / nâng cấp.

Qua đó, chỉ cần thử lệnh đầu tiên trong môi trường thử nghiệm của bạn. Xem nếu mọi thứ không hoạt động. Nếu bạn thực sự không chắc chắn có được khác biệt, và đọc tài liệu cho gói và nghiên cứu.


Bạn khuyên DEBIAN_FRONTEND = không tương tác qua - lực lượng-có? Có vẻ như mặc định là KHÔNG và "có" có nhiều khả năng đúng trong trường hợp này. (Tôi không thể nhấn bất kỳ phím nào vì không có stdin.)
Mojo
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.