我想安装libpq-dev
在我的 Vagrant 机器上。我安装它
$ apt-get install -y libpq-dev
安装过程中会出现提示,询问是否允许自动重新启动某些服务。这个提示破坏了我的 Vagrant 条款。怎么才能关掉这个提示呢?
文本:
系统上安装了一些服务,升级某些库(例如 libpam、libc 和 libssl)时需要重新启动这些服务。由于这些重新启动可能会导致系统服务中断,因此每次升级时通常都会提示您选择要重新启动的服务列表。您可以选择此选项以避免出现提示;相反,所有必要的重新启动都会自动为您完成,这样您就可以避免在每次库升级时被问到问题。
****编辑 ****
谢谢帕特里克的回答和这问题我修好了。现在我的 Vagrantfile 包含:
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libpq-dev
答案1
设置环境变量DEBIAN_FRONTEND=noninteractive
。
例如:
export DEBIAN_FRONTEND=noninteractive
apt-get install -y libpq-dev
这将apt-get
选择默认选项。
答案2
您应该能够使用 来实现这一点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”时设置要重新启动的服务列表。
questions.dat
在 Debian 下,下的文件中应该有关于此行有效值的更多信息/var/lib/cdebconf
。看https://www.debian.org/releases/stable/i386/apbs03.html.en更多细节。
答案3
我认为现有的答案可能有点旧了。以下内容最近对我有用。
查看包的设置
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
答案4
您可以通过卸载软件包在 Debian 11 上禁用此功能needrestart
。
apt remove needrestart