如何在 python 中自动回答是?
How can I automatically answer yes in python?
假设我有一个稍后运行 apt upgrade -y
的脚本,我将需要针对不同的软件包手动回答这些问题。我怎样才能自动做到这一点?
正在设置 virtualbox-guest-x11 (5.0.32-dfsg-0ubuntu1.16.04.2) ...
Configuration file '/etc/X11/Xsession.d/98vboxadd-xclient'
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
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.
*** 98vboxadd-xclient (Y/I/N/O/D/Z) [default=N] ? conffile prompt detected: /etc/X11/Xsession.d/98vboxadd-xclient /etc/X11/Xsession.d/98vboxadd-xclient.dpkg-new
我的脚本能够检测到配置提示,但我应该如何自动回答是?
通过使用 python-apt api 我可以通过此功能检测到提示
def conffile(self, current, new):
print " conffile prompt detected: %s %s" % (current, new)
"""(Abstract) Called when a conffile question from dpkg is detected."""
因为(根据问题下的评论)您正在使用 Python-APT, the first way that comes to mind is using the Configuration class 来设置 conf['APT::Get::Assume-Yes'] = True
。
使用yes
命令:
yes Y | apt ...
对于所有像我一样迷路的人,答案是:
import apt_pkg
apt_pkg.init_config()
apt_pkg.config.set("DPkg::Options::", "--force-confnew")
这将使 apt 自动接受新的配置文件。
假设我有一个稍后运行 apt upgrade -y
的脚本,我将需要针对不同的软件包手动回答这些问题。我怎样才能自动做到这一点?
正在设置 virtualbox-guest-x11 (5.0.32-dfsg-0ubuntu1.16.04.2) ...
Configuration file '/etc/X11/Xsession.d/98vboxadd-xclient'
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
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.
*** 98vboxadd-xclient (Y/I/N/O/D/Z) [default=N] ? conffile prompt detected: /etc/X11/Xsession.d/98vboxadd-xclient /etc/X11/Xsession.d/98vboxadd-xclient.dpkg-new
我的脚本能够检测到配置提示,但我应该如何自动回答是?
通过使用 python-apt api 我可以通过此功能检测到提示
def conffile(self, current, new):
print " conffile prompt detected: %s %s" % (current, new)
"""(Abstract) Called when a conffile question from dpkg is detected."""
因为(根据问题下的评论)您正在使用 Python-APT, the first way that comes to mind is using the Configuration class 来设置 conf['APT::Get::Assume-Yes'] = True
。
使用yes
命令:
yes Y | apt ...
对于所有像我一样迷路的人,答案是:
import apt_pkg
apt_pkg.init_config()
apt_pkg.config.set("DPkg::Options::", "--force-confnew")
这将使 apt 自动接受新的配置文件。