Вопросы командной строки Surpress во время установки пакета - proUbuntu
1 голос
/

У меня есть устройство на основе Ubuntu 16.04, в котором установлены пакеты из общедоступного репозитория. Но не напрямую используя публичный репозиторий. Вместо этого используется сервер обновлений, который загружает пакеты и затем помещает их в один файл. Программа обновления в системе получает эти файлы, извлекает пакеты и устанавливает их.

В последнее время пакет base-files доставляет мне некоторые неприятности, которые содержат файл / etc / issue (кажется, он содержит версию Ubuntu):

Setting up base-files (9.4ubuntu4.8) ...

Configuration file '/etc/issue'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.

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

DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --quiet --yes --force-yes install [Absolute path of the packages]

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

DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get -o Dpkg::Options::="--force-confnew" --quiet --yes --force-yes install [Absolute path of the packages]

Но это, к сожалению, ничего не изменило.

Теперь мой вопрос: есть ли какая-либо опция, которая бы исправила это поведение.

1 Ответ

0 голосов
/

Спасибо пользователю seahawk1986 на немецком форуме Ubuntu: https://forum.ubuntuusers.de/topic/kommandozeilen-abfrage-bei-paketinstallation-u/

Я нашел решение проблемы: https://debian -handbook.info / просмотр / EN-US / стабильный / sect.automatic-upgrades.html # Ид 1.9.17.9

Я сделал скрипт:

#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
/usr/bin/yes '' | /usr/bin/apt-get --yes --force-yes --quiet -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install "$@"
  • - да - ответьте "да" на каждый вопрос
  • - force-yes - Принудительно отвечать «да» на каждый вопрос
  • - тихо - не показывать, например любые индикаторы выполнения.
  • -o Dpkg :: Options :: = "- force-confdef" - использовать ответ по умолчанию, если файл конфигурации необходимо заменить.
  • -o Dpkg :: Options :: = "- force-confold" - использовать старый файл конфигурации, если файл конфигурации необходимо заменить. На всякий случай --force-confdef не работает.
  • "$ @" - все пути к пакетам, которые я передаю этому сценарию.
  • export DEBIAN_FRONTEND = неинтерактивно - при установке / обновлении пакетов используйте только неинтерактивный режим.

Интересная часть

/usr/bin/yes '' |

До сих пор я никогда не работал с "да". Он просто печатает «у», за которым следует разрыв строки (означает «Ввод»), который затем может быть передан на стандартный ввод (стандартный ввод). В этом случае мы просто используем пустую строку. Таким образом, «да» затопляет стандартный ввод данными Enter. Если возникает вопрос, в большинстве случаев при ответе на этот вопрос используется опция по умолчанию, просто нажав клавишу ввода. И это волшебство, которое помогло мне.

Надеюсь, что это также помогает другим людям, сталкивающимся с такими же или похожими проблемами. ?

...