Как предотвратить появление запроса на перезапуск служб при установке libpq-dev

29

Я хочу установить libpq-devна мою машину Vagrant. Я устанавливаю это с

$ apt-get install -y libpq-dev

Во время установки появляется подсказка, которая спрашивает, разрешено ли перезапускать некоторые службы автоматически. Эта подсказка нарушает мое положение Vagrant. Как можно отключить эту подсказку?

незамедлительный

Текст:

В вашей системе установлены службы, которые необходимо перезапустить при обновлении определенных библиотек, таких как libpam, libc и libssl. Поскольку эти перезапуски могут вызывать прерывания обслуживания системы, при каждом обновлении вам обычно будет предлагаться список служб, которые вы хотите перезапустить. Вы можете выбрать эту опцию, чтобы избежать запроса; вместо этого все необходимые перезапуски будут выполняться автоматически, поэтому вы можете избежать вопросов при каждом обновлении библиотеки.

****РЕДАКТИРОВАТЬ ****

Благодаря ответу Патрика и этому вопросу я исправил это. Теперь мой Vagrantfile содержит:

 sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libpq-dev
OrangeTux
источник
Я предлагал использовать, -yно, похоже, это мало что меняет. см.man apt-get | less +/--force-yes
Валентин Байрами
Я тоже попробовал этот вариант, но это тоже не сработало.
OrangeTux

Ответы:

28

Установите переменную среды DEBIAN_FRONTEND=noninteractive .

Например:

export DEBIAN_FRONTEND=noninteractive
apt-get install -y libpq-dev

Это позволит apt-getвыбрать параметры по умолчанию.

Патрик
источник
2
Не работает в этом случае.
Найджел Хорн
2
Пожалуйста, укажите, что такое «этот случай». Автор вопроса выбрал этот ответ как правильный. Если ответ не работает для вас, я рекомендую вам задать новый вопрос и обязательно уточнить, чем отличается ваш случай, и что это не работает для вас.
Патрик
1
У меня это тоже не сработало.
Фелипе
Является ли опция по умолчанию для перезапуска службы или нет перезапуска службы?
Николи
у меня тоже не сработало export DEBIAN_FRONTEND=noninteractive; sudo apt-get update; sudo apt-get install -y libssl-dev openssl. Ubuntu 18
RSHAP
9

Вы должны быть в состоянии достичь этого, используя debconf-set-selections. Со страницы руководства:

debconf-set-selections can be used to pre-seed the debconf database
with answers, or to change answers in the database. Each question will
be marked as seen to prevent debconf from asking the question
interactively.

Чтобы определить необходимый ввод, debconf-set-selectionsесли он неизвестен, вы можете ответить на приглашение вручную, а затем проверить базу данных debconf, чтобы найти правильное значение. Для этого установите debconf-utils:

sudo apt-get -y install debconf-utils

который обеспечивает debconf-get-selectionsкоманду. Затем:

sudo debconf-get-selections | grep libssl1.0.0:amd64

проверить значения в базе данных. В моей системе (Ubuntu, но Debian должен быть похожим) я не получаю приглашение при установке apt-get install libpq-dev, и у меня есть эта запись:

libssl1.0.0:amd64   libssl1.0.0/restart-services     string

так что вы должны быть в состоянии использовать:

echo 'libssl1.0.0:amd64 libssl1.0.0/restart-services string' | sudo debconf-set-selections

установить список служб для перезапуска при обновлении libssl до 'none'.

В Debian в questions.datфайле должно быть больше информации о допустимых значениях для этой строки /var/lib/cdebconf. См. Https://www.debian.org/releases/stable/i386/apbs03.html.en для получения более подробной информации.

mvermaes
источник
4

Я думаю, что существующие ответы могут быть немного старыми. Следующее сработало для меня недавно.

Чтобы увидеть настройки для пакета

sudo debconf-show <package-name>

НАПРИМЕР:

$ sudo debconf-show libssl1.1 
  libssl1.1/restart-services:
  libssl1.1/restart-failed:
* libraries/restart-without-asking: false

Чтобы изменить настройку

echo '<package-and-setting-string>' | sudo debconf-set-selections

НАПРИМЕР

echo 'libssl1.1 libraries/restart-without-asking boolean true' | sudo debconf-set-selections

Бонусный совет, чтобы установить этот параметр для всех пакетов, используйте «*» вместо названия пакета.

НАПРИМЕР

echo '* libraries/restart-without-asking boolean true' | sudo debconf-set-selections
PiersyP
источник
Принятый ответ не работал для меня, но с помощью debconf-set-selectionsсделал.
Bradj