Відповіді:
через сторінку apt-get man :
apt-get -y install [packagename]
Проблема з:
apt-get --yes install $something
полягає в тому, що він попросить підтвердити вручну, якщо відкритий ключ власника підпису пакета не знаходиться в брелоку чи в деяких інших умовах. щоб бути впевненим, що він не вимагає підтвердження, просто зробіть це:
apt-get --yes --force-yes install $something
Якщо ви хочете, щоб ці налаштування були постійними, створіть файл у /etc/apt/apt.conf.d/, як-от /etc/apt/apt.conf.d/90forceyes із таким вмістом:
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
-y
стало нудно. (Плюс це більш повна відповідь.)
--force-yes
: оскільки ця відповідь на пов'язану тему наdebian-devel
пропозиції --force-yes
може зробити систему непридатною. (Я не заперечую, тому що відповідь насправді вирішує проблему, про яку йдеться в ОП, але я все-таки додати до відповіді
Зауважте, що якщо ви також хочете автоматично переходити до відповідей за замовчуванням, коли з’являється інтерактивне запит, ви можете використовувати DEBIAN_FRONTEND=noninteractive
Одноразова установка:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]
Наприклад:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix
Усі оновлення:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
Ви можете налаштувати більш точні параметри за допомогою -o Dpkg::Options::="--force-confdef"
та -o Dpkg::Options::="--force-confold"
.
Приклади:
apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
або
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Приклад інтерактивної підказки:
Цікаве прочитання: Виконайте автоматичну установку пакету Debian
-y
, у мене все ще з'являються запитання, чи хочу я перезапустити послуги. Мені це було потрібно, щоб повністю усунути всі підказки.
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Це має бути принаймні /etc/apt/apt.conf
і прокоментовано. Я переживаю, що Ubuntu приймає Microsoft, коли завжди просить дозволу.
"Ви впевнені?", Звичайно, я впевнений, що я не навчена мавпа, яка просто набирає клавіатуру, клацаючи щасливою.
Далі двері запитають: "Ви впевнені, що хочете вийти на вулицю?"
Піч запитає: "Ви впевнені, що хочете готувати?"
Автомобіль запитає: "Ви впевнені, що хочете застосувати гальмо?"
Вогнегасник запитає: "Ви впевнені, що хочете гасити пожежу?"
Мені шкода, Дейв, я не можу дозволити вам це зробити.
HAL9000 може використати скорочення, але дані не могли чи не могли.
Використовуйте -y
перемикач:
apt-get -y install packagename
як правило, варіанти з посібника повинні працювати добре
apt-get -y --force-yes install package
якщо це не вдається, ви можете спробувати скористатися yes
командою.
yes | apt-get -y --force-yes install package
використовував це з моїм бродячим сценарієм надання оболонки
PS: якщо ви хочете неінтерактивний, але, як правило, заявляючи "ні", ви можете спробувати це:
yes no | apt-get install package
Якщо ви завжди хочете аргумент -y, я б радив додати рядок
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
у свій .bashrc. Це, як пояснюється в коментарі, автоматично додасть аргумент -y до всіх ваших команд apt-get і тому затвердить усі завантаження.
ПРИМІТКА. Це буде залишатися істинним, поки ви не відновите .bashrc і не перезапустите оболонку.
Я шукав спосіб вибору невиконання за замовчуванням у скрипті, зокрема при встановленні проводів, і в кінцевому підсумку використовував tmux для взаємодії з оболонкою:
# 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