Тихая установка для apt-get

Тихая установка для apt-get

Для работы мне нужно подготовить много ПК. Мне нужно засунуть кучу sudo apt-get installкоманд в терминал - это довольно утомительно. Я мог бы, наверное, поместить их все в скрипт sh (возможно), но некоторые команды требуют добавления нового репозитория ( sudo add-apt-repository) или добавления нового ключа (??) через gpgкоманду - и они требуют, чтобы пользователь нажал ENTER.

Есть ли способ сказать "да" всем или что-то в этом роде? Это, вероятно, потребует добавления некоторых опций в команды apt-get и gpg?

решение1

Вы можете добавить флаги --assume-yesи --force-yes, чтобы автоматически ответить «да» всем.

sudo apt-get --assume-yes --force-yes install <packagename(s)>

Чтобы сделать эти изменения постоянными, отредактируйте /etc/apt/apt.confи добавьте строки

APT::Get::Assume-Yes "true";    
APT::Get::force-yes "true";

Это то, что есть на странице руководстваapt-getговорит -

   -y, --yes, --assume-yes
       Automatic yes to prompts; assume "yes" as answer to all prompts and
       run non-interactively. If an undesirable situation, such as
       changing a held package, trying to install a unauthenticated
       package or removing an essential package occurs then apt-get will
       abort. Configuration Item: APT::Get::Assume-Yes.

   --force-yes
       Force yes; this is a dangerous option that will cause apt to
       continue without prompting if it is doing something potentially
       harmful. It should not be used except in very special situations.
       Using force-yes can potentially destroy your system! Configuration
       Item: APT::Get::force-yes.

решение2

За исключением индивидуальной установки предварительно настроенной системы, я бы, вероятно, использовал сценарий установки, запускаемый на каждой системе.

Для каких команд нужно нажать Enter? add-apt-repositoryВ справке указана такая -yопция:

$ sudo add-apt-repository --help
Usage: add-apt-repository [options] repository

Options:
  -h, --help  show this help message and exit
  -y, --yes   force yes on all confirmation questions

Ссылка на справку ниже говорит, что для добавления PPA "Если требуется и доступен открытый ключ, он автоматически загружается и регистрируется". Также есть пакеты вроде ubuntu-keyring, ubuntu-extras-keyring, linuxmint-keyringи т. д., которые содержат ключи для различных репозиториев. И man gpgдолжно рассказать, как заставить его автоматически установить ключ, если вы застряли с его использованием.

И/или вы можете редактировать sources.listфайлы напрямую с помощью sed/ awk, или, если системы идентичны, просто скопируйте "готовые" файлы.
Эта страница справки Ubuntu содержит больше информации окак управлять репозиториями программного обеспечения из командной строки.

И если вы готовите много систем, могу ли я предположить, что вы будете загружать пакеты .deb только один раз и устанавливать их все на каждую машину, вместо того, чтобы обновлять и загружать их все для каждой системы? Если у вас все .deb в одной папке, эта команда установит их все:

  • sudo dpkg -iR [deb-directory]

FYI, я видел один странный пакет, который ждал enterдо завершения установки, по-видимому, он был внутри одного из своих собственных скриптов конфигурации, и даже apt-get's --force-yesне работали с ним. У вас ведь нет ничего такого, не так ли?


Или, если вы намерены простопринудительное нажатие нескольких клавишв терминал telnet (должен работать и для других методов), вы можете использовать скрипт bash, например такой:

{
echo "open 192.168.55.55"
sleep 0.5
echo "$login"
sleep 0.5
echo "$password"
sleep 0.5
echo "command1"
sleep 2
echo " "
sleep 5
echo "exit"
} | telnet

Использование разного времени сна для задержек между «набором текста», повтором пробела " "или даже просто echo должно отправлять «возврат» новой строки.

Связанный контент