Câu trả lời:
thông qua trang apt-get man :
apt-get -y install [packagename]
Vấn đề với:
apt-get --yes install $something
là nó sẽ yêu cầu xác nhận thủ công nếu khóa công khai của chữ ký gói không nằm trong khóa, hoặc một số điều kiện khác. để chắc chắn rằng nó không yêu cầu xác nhận chỉ cần làm điều này:
apt-get --yes --force-yes install $something
Nếu bạn muốn có các cài đặt này vĩnh viễn, hãy tạo một tệp trong /etc/apt/apt.conf.d/, như /etc/apt/apt.conf.d/90forceyes với nội dung sau:
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
-y
đã trở nên nhàm chán. (Thêm vào đó là một câu trả lời đầy đủ hơn.)
--force-yes
: vì phản hồi này cho một chủ đề liên quan trêndebian-devel
gợi ý, --force-yes
có thể khiến hệ thống không sử dụng được. (Tôi không downvoting bởi vì câu trả lời thực sự giải quyết vấn đề như đã nêu bởi OP, nhưng tôi muốn thêm một CẢNH BÁO RED BIG câu trả lời nào.)
Lưu ý rằng nếu bạn cũng muốn tự động đi theo câu trả lời mặc định khi lời nhắc tương tác xuất hiện, bạn có thể sử dụng DEBIAN_FRONTEND=noninteractive
Cài đặt đơn:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]
Ví dụ:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix
Tất cả các cập nhật:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
Bạn có thể thiết lập các tùy chọn tốt hơn với -o Dpkg::Options::="--force-confdef"
và -o Dpkg::Options::="--force-confold"
.
Ví dụ:
apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
hoặc là
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Ví dụ về dấu nhắc tương tác:
Đọc thú vị: Thực hiện cài đặt không giám sát gói Debian
-y
, tôi vẫn nhận được lời nhắc hỏi liệu tôi có muốn khởi động lại dịch vụ không. Tôi cần điều này để loại bỏ hoàn toàn tất cả các lời nhắc.
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Điều này ít nhất nên được trong /etc/apt/apt.conf
và nhận xét ra. Tôi lo lắng Ubuntu đang cố gắng để Microsoft luôn luôn xin phép.
"Bạn có chắc không?", Tất nhiên tôi chắc chắn, tôi không phải là một con khỉ được đào tạo chỉ đơn giản là gõ bàn phím, nhấp vào hạnh phúc.
Tiếp theo cánh cửa sẽ hỏi, "Bạn có chắc chắn muốn đi ra ngoài?"
Lò nướng sẽ hỏi, "Bạn có chắc bạn muốn nấu ăn?"
Ô tô sẽ hỏi, "Bạn có chắc chắn muốn áp dụng phanh?"
Bình chữa cháy sẽ hỏi: "Bạn có chắc chắn muốn dập lửa không?"
Tôi xin lỗi Dave, tôi không thể để bạn làm điều đó.
HAL9000 có thể sử dụng một cơn co nhưng Dữ liệu không thể hoặc không thể.
Sử dụng công -y
tắc:
apt-get -y install packagename
Nói chung các tùy chọn từ hướng dẫn sẽ hoạt động tốt
apt-get -y --force-yes install package
Nếu nó không thành công, bạn có thể thử sử dụng yes
lệnh.
yes | apt-get -y --force-yes install package
đã sử dụng điều này với kịch bản cung cấp vỏ mơ hồ của tôi
PS: trong trường hợp bạn muốn không tương tác nhưng nói chung là không có thì bạn có thể thử điều này:
yes no | apt-get install package
Nếu bạn luôn muốn đối số -y tôi khuyên bạn nên thêm dòng
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
vào .bashrc của bạn. Điều này, như nhận xét giải thích, sẽ tự động thêm đối số -y vào tất cả các lệnh apt-get của bạn và do đó phê duyệt tất cả các bản tải xuống.
LƯU Ý: Điều này sẽ vẫn đúng cho đến khi bạn hoàn nguyên .bashrc và khởi động lại trình bao.
Tôi đang tìm cách chọn một tập lệnh không mặc định trong tập lệnh, cụ thể là khi cài đặt wireshark và cuối cùng sử dụng tmux để tương tác với trình bao, như sau:
# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach