我在 14.04.5 LTS。运行正常的 apt-get 升级时出现此错误:
Setting up nginx-common (1.10.1-3+trusty1) ...
dpkg: error processing package nginx-common (--configure):
subprocess installed post-installation script returned error exit status 1
我已经省略了由此引起的所有后续错误,“Package nginx-common is not configured yet.”等。
我按照这个答案中的过程来调试.postinst
它,它永远不会超过第 3 行:. /usr/share/debconf/confmodule
- 这就是返回1
.
我已经尝试过这个解决方案,但没有帮助,debconf 绝对可以访问。而这些(错误仍然存在)。据我所知,我在任何包含的 conf 文件中都没有 ipv6 监听指令。
我不知道如何调试 debconf 以查看它失败的原因。有谁知道我接下来应该尝试什么?
编辑:新的更新,他们安装,但最后我得到这个错误:
Setting up nginx-full (1.10.1-3+trusty2) ...
initctl: invalid command: upgrade
Try `initctl --help' for more information.
invoke-rc.d: initscript nginx, action "upgrade" failed.
不确定我是否应该标记为已解决。
此特定问题已修复,请更新您的软件包!
Ubuntu 存储库 (LP 错误 #1637058)
在Ubuntu Zesty 提议的存储库中(这是一个开发中的版本,我希望你没有使用这个......),
1.10.1-0ubuntu5
解决了这个问题。在Ubuntu Trusty、Xenial 和 Yakkety 中,安全团队已经发布了软件包的更新版本来解决这个问题,并且正在考虑它是软件包中的回归。此信息在错误中有详细说明,并且在相应的Ubuntu 安全通知 (USN-3114-2)中非常简短,但此问题已在以下版本的软件包中得到修复:
1.4.6-1ubuntu3.7
安全和更新存储库)1.10.0-0ubuntu0.16.04.4
安全和更新存储库)1.10.1-0ubuntu1.2
安全和更新存储库)Ubuntu Precise存储库中的版本不受影响,因为它们从未以引入 CVE 的方式进行更改,该 CVE 提示最近更新。(这仅适用于 Ubuntu 存储库,不适用于 PPA。)
PPA (LP 错误 #1637200)
我已将修改后的软件包上传到解决此问题的暂存 PPA,并实施了修复。这些构建没有问题,并于 2016 年 10 月 27 日下午 12:56 (UTC-04:00) 复制到 Launchpad 上的主要主线和稳定 PPA。
这包括对Precise、Trusty、Xenial 和 Yakkety 的修复。PPA 还没有 Zesty 支持。
官方固定包已经发布,使用那些
TL;DR滚动到底部
我自己也遇到了这个问题。
为了进一步调试它,我设置了以下环境变量:
export DEBCONF_DEBUG=developer
这样我们就可以看到 debconf 在做什么。
现在我们运行
dpkg --configure --pending
我们可以看到以下内容:
现在我们可以编辑
/var/lib/dpkg/info/nginx-common.config
脚本并更改#!/bin/sh
和
#!/bin/sh -x
也可以启用调试。再次运行
dpkg --configure --pending
会显示:现在我们可以在脚本中看到我们有问题的行
dpkg --compare-versions 1.10.1-3+xenial0 lt-nl 1.10.1-0ubuntu1.1
返回退出代码 1,因为它应该 - 它正在进行版本比较并根据结果返回 0 或 1。
我不会评论如何正确修复它,因为它是在 LP 的#1637058(适用于 Ubuntu)和#1637200(适用于 PPA)中跟踪的一个实际错误。
解决方法:
编辑
/var/lib/dpkg/info/nginx-common.config
并在函数
return
的第一行添加一个。log_symlinks_check
例如:
这将允许升级过程继续。
编辑正如@Thomas Ward 所指出的,这将跳过设置步骤(修复不安全的符号链接——如果有的话——在/var/log/nginx 中)
有同样的问题:
14.04.5 LTS (GNU/Linux 3.13.0-32-generic x86_64)
16.04.1 LTS (GNU/Linux 4.4.0-45-generic x86_64)
解决了
我能够通过首先备份
/etc/nginx
文件夹来解决这个问题。然后我从系统中清除了与 nginx 相关的所有内容。随着依赖性问题的触发,我不得不一步一步地去做。
之后,将 nginx 重新安装到系统上
sudo apt-get install nginx-full
。最后使用恢复
/etc/nginx
文件夹sudo tar -zxf ~/nginx.tgz
并重新启动nginxsudo service nginx restart
希望这可以帮助!