我如何让 apt-get 跳过所有安装后配置步骤?

我如何让 apt-get 跳过所有安装后配置步骤?

在 Debian/Ubuntu 机器上安装某些软件包(如 RabbitMQ)时,该post-install步骤默认为启动服务。

虽然这在大多数情况下都很好,但在某些情况下(例如当您已经在所需端口上运行服务时)这会失败,从而导致apt-get彻底失败。

有没有办法apt-get跳过所有这些post-install步骤以便它仍然可以正确安装?

笔记这与安装过程中的问题无关,即使在交互式会话中,这些安装也会失败,因为post-install步骤失败没有得到正确处理

答案1

我如何要求 apt-get 跳过任何交互式安装后配置步骤?

export DEBIAN_FRONTEND=noninteractive
apt-get install -y [packagename]

编辑:是的,这是为了跳过(好吧,自动化)安装后问题,没错——抱歉。

没有办法跳过安装后脚本。Debian 官方政策是编辑脚本以返回非终端错误,或修复脚本。请参阅http://www.debian-administration.org/articles/251

听起来你正在为许多服务器自动执行此操作,在这种情况下,你可能希望制作自己的软件包版本并部署它。另一个选择是给软件包维护者发送电子邮件,讨论启动失败是否应该是安装后的终端错误(我不认为它适用于其他软件包,例如 apache 或 lighttpd,但我可能是错的。)

答案2

你可能想做的是策略-rc.d。请参阅invoke-rc.d 的手册页。您可以设置策略,这样服务就不会自动启动。

答案3

这应该可行

echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
apt-get install <packagename>
rm -f /usr/sbin/policy-rc.d

相关内容