Bash
如何在沒有使用者互動的情況下使用 APT 安裝軟體包?
我有一個腳本可以下載和替換 Debian 擠壓中的核心標頭檔。
function fixHeaders(){ #Replace the kernel headers from OVH with standard kernel headers... aptitude -y install linux-image-2.6.32-5-amd64 sed s/'GRUB_DEFAULT=0'/'GRUB_DEFAULT=1'/g update-grub echo "Rebooting the machine. Run this script again after reboot and choose option 2." sleep 1 reboot }
我遇到的問題是,在 aptitude 下載軟體包後,它會將腳本放入文本 gui 並詢問使用者一堆問題。有沒有辦法跳過這個或在適當的時間發送選項卡/輸入來為所有答案選擇“確定”?
根據 Daniel t 的評論,我能夠做到這一點
DEBIAN_FRONTEND=noninteractive
DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get install -y -q --force-yes linux-image-2.6.32-5-amd64
請注意,我引用的這個答案不會消除所有對話,它仍會顯示 APT/DPKG 認為重要的內容。也許最好嘗試第二個選項+使用
readline
前端debconf
並準備一個答案文件。引用姐妹網站:
這應該按照您的要求進行;之後詢問配置問題:
$ DEBIAN_PRIORITY=critical $ export DEBIAN_PRIORITY $ apt-get upgrade # Wait a long time. Should be almost entirely noninteractive. $ dpkg-reconfigure --default-priority=medium --unseen-only
或者,您可以嘗試在之前詢問所有配置問題:
$ apt-get clean $ cat >> /etc/apt/apt.conf <<EOF // Pre-configure all packages before // they are installed. DPkg::Pre-Install-Pkgs { "dpkg-preconfigure --apt --priority=low"; }; EOF $ apt-get upgrade