将 nginx 1.4.4 更新至 1.4.5,尝试覆盖同样位于包 Y 中的 X

将 nginx 1.4.4 更新至 1.4.5,尝试覆盖同样位于包 Y 中的 X

尝试升级时出现此错误:

Preparing to replace nginx 1.4.4-4~raring (using .../nginx_1.4.5-1~raring_amd64.deb) ...
Unpacking replacement nginx ...
dpkg: error processing /var/cache/apt/archives/nginx_1.4.5-1~raring_amd64.deb (--unpack):
 trying to overwrite '/usr/sbin/nginx', which is also in package nginx-full 1.4.4-4~raring
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/nginx_1.4.5-1~raring_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

我正在使用这些存储库:

deb http://nginx.org/packages/ubuntu/ raring nginx
deb-src http://nginx.org/packages/ubuntu/ raring nginx

为什么这个文件在 nginx 和 nginx-full 中?我以为 nginx-full 依赖于 nginx?

有人知道为什么会发生这种情况以及如何解决吗?谢谢!

答案1

nginx-full 软件包不是来自“http://nginx.org/packages/ubuntu/“存储库,它来自 Ubuntu 主存储库。

在安装 nginx(来自 nginx repo)之前,请先删除 nginx-full(来自主 repo)。

请记住,您在文件include中的指令方面会遇到问题nginx.conf,您需要将该行更改include /etc/nginx/conf.d/*.confinclude /etc/nginx/sites-enabled/*.conf安装后。

您可以使用 apt pinning 来避免此问题,通过为 nginx 存储库中的 nginx 包提供比默认 ubuntu 存储库更高的优先级。

请看这里:http://www.argon.org/~roderick/apt-pinning.html

相关内容