最近我在我的Ubuntu服务器上安装了newrelic,之后我自动开始在日志中出现错误,未能加载newrelic扩展。
我试图升级/删除newrelic,但在这两种情况下,我得到一个错误:
ubuntu@ip:/etc/php$ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done You might want to run 'apt-get -f install' to correct these. The following packages have unmet dependencies: nginx : Depends: nginx-core (< 1.10.0-0ubuntu0.16.04.4.1~) but 1.10.3-0ubuntu0.16.04.1 is installed or nginx-full (< 1.10.0-0ubuntu0.16.04.4.1~) but it is not installed or nginx-light (< 1.10.0-0ubuntu0.16.04.4.1~) but it is not installed or nginx-extras (< 1.10.0-0ubuntu0.16.04.4.1~) but it is not installed E: Unmet dependencies. Try using -f.
我试着运行sudo apt-get -f install但是输出结果:
ubuntu@ip:/etc/php$ sudo apt-get -f install Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done The following packages were automatically installed and are no longer required: linux-headers-4.4.0-78 linux-headers-4.4.0-78-generic linux-headers-4.4.0-79 linux-headers-4.4.0-79-generic linux-image-4.4.0-78-generic linux-image-4.4.0-79-generic nginx-common nginx-core Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: nginx The following packages will be upgraded: nginx 1 upgraded, 0 newly installed, 0 to remove and 9 not upgraded. 7 not fully installed or removed. Need to get 787 kB of archives. After this operation, 2,777 kB of additional disk space will be used. Do you want to continue? [Y/n] y WARNING: The following packages cannot be authenticated! nginx Install these packages without verification? [y/N] y Get:1 http://nginx.org/packages/ubuntu xenial/nginx amd64 nginx amd64 1.12.1-1~xenial [787 kB] Fetched 787 kB in 2s (275 kB/s) (Reading database ... 138963 files and directories currently installed.) Preparing to unpack .../nginx_1.12.1-1~xenial_amd64.deb ... Unpacking nginx (1.12.1-1~xenial) over (1.10.0-0ubuntu0.16.04.4) ... dpkg: error processing archive /var/cache/apt/archives/nginx_1.12.1-1~xenial_amd64.deb (--unpack): trying to overwrite '/etc/nginx/uwsgi_params', which is also in package nginx-common 1.10.3-0ubuntu0.16.04.1 dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Errors were encountered while processing: /var/cache/apt/archives/nginx_1.12.1-1~xenial_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
我find了一篇build议删除nginx然后重新安装的文章。 这是一个持续stream量的生产服务器,所以我想避免卸载nginx,然后失败的风险。 我已经改变了nginx的configuration,并没有logging我所有的变化。 有没有办法解决这个问题?
这可以通过强制覆盖到底层的dpkg进程来解决。 这是我用的命令:
sudo apt -o Dpkg::Options::="--force-overwrite" upgrade nginx
资料来源: https : //askubuntu.com/questions/56761/force-apt-get-to-overwrite-file-installed-by-another-package
经过研究和尝试了很多东西,我找不到任何解决scheme,并最终按照这个https://askubuntu.com/questions/243568/nginx-dependency-problem-trying-to-upgrade
我做了以下:
/etc/nginx的备份 /etc/nginx与备份文件夹,并开始工作 我有一个15-20分钟的停机时间做这一切。