Làm cách nào để yêu cầu apt-get bỏ qua tất cả các bước cấu hình sau khi cài đặt?


11

Khi cài đặt một số gói (như RabbitMQ) trên máy Debian / Ubuntu, post-installbước mặc định để bắt đầu dịch vụ.

Mặc dù điều này là tuyệt vời trong hầu hết các trường hợp, trong một số trường hợp (khi bạn đã có một dịch vụ chạy trên cổng cần thiết chẳng hạn), điều này không thành công khiến apt-getthất bại hoàn toàn.

Có cách nào để nói apt-getbỏ qua tất cả các post-installbước để nó vẫn có thể cài đặt đúng không?

Lưu ý Đây không phải là câu hỏi trong khi cài đặt, ngay cả trong các phiên tương tác, các cài đặt này không thành công vì post-installlỗi không được xử lý đúng cách




1
Câu hỏi đó tương tự nhưng khác nhau. Đây là về việc bỏ qua tất cả các bước, không chỉ những người tương tác. Một số tác vụ tự động thực thi các tập lệnh không phải lúc nào cũng muốn.
Wolph

Câu trả lời:


8

Làm cách nào để yêu cầu apt-get bỏ qua bất kỳ bước cấu hình sau cài đặt tương tác nào?

export DEBIAN_FRONTEND=noninteractive
apt-get install -y [packagename]

Chỉnh sửa : có, đó là để bỏ qua (tốt, tự động hóa) các câu hỏi sau khi cài đặt , đúng - xin lỗi.

Không có cách nào để bỏ qua các kịch bản sau khi cài đặt . Chính sách Debian chính thức là chỉnh sửa tập lệnh để trả về lỗi không đầu cuối hoặc sửa tập lệnh. Xem http: //www.debian-adftime.org/articles/251

Có vẻ như bạn đang tự động hóa việc này cho nhiều máy chủ, trong trường hợp đó, có lẽ bạn sẽ muốn tạo phiên bản gói của riêng mình và triển khai nó. Một tùy chọn khác là gửi email cho người bảo trì gói và thảo luận xem lỗi không khởi động có phải là lỗi thiết bị đầu cuối cho quá trình cài đặt không (ví dụ: tôi không tin đó là các gói khác như apache hoặc lighttpd, nhưng tôi có thể sai .)


Đó chỉ là bỏ qua các bước tương tác. Đó không phải là vấn đề ở đây, đây là những bước không tương tác post-installthất bại nếu một cái gì đó giống như service rabbitmq-server startthất bại.
Wolph

Cập nhật. cái đó có giúp ích không?
Brett Dikeman

nó, tốt hơn để biết rằng nó không thể hơn là tự hỏi nếu nó là :) Cảm ơn vì sự giúp đỡ.
Wolph

Nếu bạn đang sử dụng sudo, việc xuất biến môi trường sẽ không hoạt động, nhưng bạn có thể thực hiện theo cách này:sudo DEBIAN_FRONTEND=noninteractive apt-get -y [packagename]
aculich

4

Những gì bạn có thể muốn làm là một cái gì đó với chính sách-RC.d . Xem trang man cho invoke-rc.d. Bạn có thể đặt chính sách để các dịch vụ sẽ không được tự động bắt đầu.


Đó là một cách để làm việc xung quanh nó, nhưng đó sẽ là một biện pháp tạm thời tôi giả sử? Atleast ... Tôi nghĩ theo cách đó bạn sẽ vô hiệu hóa toàn bộ dịch vụ bắt đầu trên toàn cầu.
Wolph

2

cái này nên hoạt động

echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
apt-get install <packagename>
rm -f /usr/sbin/policy-rc.d

Một chút hacky và rất cụ thể cho trường hợp này, nhưng nó giúp rất nhiều! Cảm ơn :)
Wolph
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.