如何以非交互方式使用 dpkg 安装 .deb?
How to install .deb with dpkg non-interactively?
我正在尝试安装 .deb 文件...例如:
example.deb。
但是该程序已经安装在 Debian 最小服务器上的旧版本中。
这样做 dpkg -i example.deb
就是创建一个对话框,如果我想保留配置...
有什么办法可以做到这一点 none 互动吗?
您可以将 yes
传送到其中:
yes | dpkg -i package.deb
您似乎在寻找
dpkg --force-confold -i package.deb
指定 dpkg
在发生冲突时应该优先使用现有的旧配置文件。
更广泛地说,正确的解决方案取决于您避免交互式提示的迫切程度,以及您想要避免的提示。
dpkg
有许多选项可以 select 针对各种情况的特定行为。请参阅其 man page; 滚动到有关 --force-
things 的部分;其中之一是 --force-confold
,或者相反 --force-confnew
总是替换任何现有的配置文件。 (许多现代软件包具有完全自动升级任何未更改配置的功能,但手动更改的配置文件仍需要手动更新或合并。)
如果您不是直接 运行 dpkg
,apt
和朋友允许您通过
向其传递选项
apt install -o Dpkg::Options::="--force-confold" install package
(是的,有很多冒号。您可能希望 install -y
也避免 Apt 本身的交互式提示。)
将环境变量 DEBIAN_FRONTEND
设置为字符串 noninteractive
将使 Debconf(Debian 的配置管理组件)select 成为所有问题的默认答案,并禁用任何提示。
如果软件包配置问题的默认答案不合适,您可以preseed Debconf 的配置数据库,其中包含您想要的设置。您需要安装包含实用程序 debconf-set-selections
的 debconf-utils
。进一步查看 its man page and e.g. some sections of https://wiki.debian.org/DebianInstaller/Preseed(虽然这更侧重于预置安装程序,因此您可以执行所有 Debian 的无人值守安装)。
的问题
yes | dpkg -i package.deb
您无法准确预测将显示哪些提示,具体取决于包和托管系统的配置;您可能会对您不想要的内容说 yes
,或者告诉系统您的域名或默认数据库用户是 yes
。 Debconf 旨在为您提供非常详细的信息,并且在大多数情况下,对软件包安装进行非常安全和强大的控制 - 使用它的力量。
我正在尝试安装 .deb 文件...例如: example.deb。 但是该程序已经安装在 Debian 最小服务器上的旧版本中。
这样做 dpkg -i example.deb
就是创建一个对话框,如果我想保留配置...
有什么办法可以做到这一点 none 互动吗?
您可以将 yes
传送到其中:
yes | dpkg -i package.deb
您似乎在寻找
dpkg --force-confold -i package.deb
指定 dpkg
在发生冲突时应该优先使用现有的旧配置文件。
更广泛地说,正确的解决方案取决于您避免交互式提示的迫切程度,以及您想要避免的提示。
dpkg
有许多选项可以 select 针对各种情况的特定行为。请参阅其 man page; 滚动到有关 --force-
things 的部分;其中之一是 --force-confold
,或者相反 --force-confnew
总是替换任何现有的配置文件。 (许多现代软件包具有完全自动升级任何未更改配置的功能,但手动更改的配置文件仍需要手动更新或合并。)
如果您不是直接 运行 dpkg
,apt
和朋友允许您通过
apt install -o Dpkg::Options::="--force-confold" install package
(是的,有很多冒号。您可能希望 install -y
也避免 Apt 本身的交互式提示。)
将环境变量 DEBIAN_FRONTEND
设置为字符串 noninteractive
将使 Debconf(Debian 的配置管理组件)select 成为所有问题的默认答案,并禁用任何提示。
如果软件包配置问题的默认答案不合适,您可以preseed Debconf 的配置数据库,其中包含您想要的设置。您需要安装包含实用程序 debconf-set-selections
的 debconf-utils
。进一步查看 its man page and e.g. some sections of https://wiki.debian.org/DebianInstaller/Preseed(虽然这更侧重于预置安装程序,因此您可以执行所有 Debian 的无人值守安装)。
yes | dpkg -i package.deb
您无法准确预测将显示哪些提示,具体取决于包和托管系统的配置;您可能会对您不想要的内容说 yes
,或者告诉系统您的域名或默认数据库用户是 yes
。 Debconf 旨在为您提供非常详细的信息,并且在大多数情况下,对软件包安装进行非常安全和强大的控制 - 使用它的力量。