Есть ли способ заставить apt-get install
ответить "да" на «Хотите продолжить [да / нет]?«?
10 ответов
Проблема с:
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";
Обратите внимание, что если вы также хотите автоматически переходить к ответам по умолчанию при появлении интерактивного приглашения, вы можете использовать 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
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Это должно быть как минимум в /etc/apt/apt.conf
и закомментировано. Я волнуюсь, что Ubuntu берет на себя обязательство Microsoft всегда просить разрешения.
"Уверены ли вы?«Конечно, я уверен, что я не обученная обезьяна, просто набирающая текст на клавиатуре, щелкая счастливым.
Затем дверь спросит: «Вы уверены, что хотите выйти на улицу?"
Духовка спросит: «Ты уверен, что хочешь готовить?"
Автомобиль спросит: «Вы уверены, что хотите применить тормоза?"
Огнетушитель спросит: «Вы уверены, что хотите потушить огонь?"
Прости, Дейв, я не могу позволить тебе сделать это.
HAL9000 может использовать сжатие, но Data не может или не может.
Используйте ключ -y
:apt-get -y install packagename
apt-get -y update
apt-get -y install [package]
как правило, параметры из руководства должны работать хорошо
apt-get -y --force-yes install package
если это не удастся, вы можете попробовать использовать команду yes
.
yes | apt-get -y --force-yes install package
действительно использовал это с моим сценарием подготовки оболочки vagrant
PS: если вы хотите неинтерактивный, но с общим утверждением нет, то вы можете попробовать это:
yes no | apt-get install package
Я искал способ выбрать нестандартный сценарий, особенно при установке wireshark, и в итоге использовал 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
Новый (хорошо) apt
псевдоним также принимает ключ -y
(--yes
):
sudo apt -y upgrade
Если вы всегда хотите аргумент -y, я бы посоветовал добавить строку
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
в ваш .bashrc. Это, как объясняется в комментарии, автоматически добавит аргумент -y ко всем вашим командам apt-get и, следовательно, одобрит все загрузки.
ПРИМЕЧАНИЕ. Это останется верным до тех пор, пока вы не вернете свой .bashrc и не перезапустите оболочку.