«apt upgrade» через SSH: этот интерфейс требует управляющего tty

«apt upgrade» через SSH: этот интерфейс требует управляющего tty

При обновлении наших серверов Linux я отправляю следующую команду с одного из наших серверов управления:

ssh server1.mycompany.com apt upgrade

При определенных обстоятельствах я получаю следующий вывод команды:

debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)

Поскольку я не могу взаимодействовать с диалогом, я полагаю, что выбраны значения по умолчанию. Как другие люди справляются с этой проблемой? Вход на каждый сервер для запуска apt upgrade, просто на случай, если всплывет диалог, не кажется правильным решением. Может быть, есть способ прервать "apt upgrade" или что-то в этом роде, когда всплывают диалоги? Или, что еще лучше, может быть, есть способ сделать так, чтобы всплывающее окно отображалось на стороне клиента SSH-подключения, т. е. на сервере, к которому я подключаюсь по sshот?

решение1

Вам нужен терминал, который вы можете настроить либо с помощью параметров, -tпринудительно включающих pty, либо -Tпринудительно не включающих pty (или с помощью соответствующих опций файла конфигурации).

Кроме того, при использовании pty TERMкопируется переменная окружения (могут применяться исключения; проверьте документацию для получения полных данных и официальную форму регистрации в розыгрыше).

Вы можете указать неинтерактивный интерфейс, который не предъявляет никаких требований и не задает никаких вопросов (что может быть тем, что вам нужно, а может и нет):

ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"

Для получения дополнительной информации см. публикацию Ask Ubuntu. Невозможно инициализировать интерфейс: диалог при использовании ssh.

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