在Ubuntu Server 16.04上更新PHP软件包失败

时间:2019-07-11 09:35:29

标签: php apache2 ubuntu-16.04 google-compute-engine

我正在将Google Cloud Compute Engine用于我们的Web服务器。我们使用OndřejSurý的PPA在PHP7.2上运行了Webapp。

我们有一个启动脚本来安装所有必需的软件包并进行配置:

apt install -y apache2 php7.2 php7.2-common php7.2-cli php7.2-mysql php7.2-json php7.2-opcache php7.2-readline php7.2-intl php7.2-mbstring php7.2-zip php7.2-curl php7.2-xml php7.2-memcached php7.2-imagick php7.2-bcmath php7.2-json

a2dismod php7.0
a2enmod php7.2
update-alternatives --set php /usr/bin/php7.2
update-alternatives --set phar /usr/bin/phar7.2
update-alternatives --set phar.phar /usr/bin/phar.phar7.2
update-alternatives --set phpize /usr/bin/phpize7.2
update-alternatives --set php-config /usr/bin/php-config7.2

在虚拟机的初始设置上,所有组件都可以正常工作,并且所有软件包都安装成功。

但是当我们需要安装新的php7.2-XXX软件包或有已安装软件包的更新时,我们总是会遇到如下配置错误:

因此,当我们运行apt -y upgrade时,最终会遇到以下错误:

Setting up php7.2-common (7.2.20-1+ubuntu16.04.1+deb.sury.org+1) ...
Internal error!
dpkg: error processing package php7.2-common (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of php7.2-curl:
 php7.2-curl depends on php7.2-common (= 7.2.20-1+ubuntu16.04.1+deb.sury.org+1); however:
  Package php7.2-common is not configured yet.

dpkg: error processing package php7.2-json (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of php7.2-opcache:
 php7.2-opcache depends on php7.2-common (= 7.2.20-1+ubuntu16.04.1+deb.sury.org+1); however:
  Package php7.2-common is not configured yet.

...

结尾:

Errors were encountered while processing:
 php7.2-common
 php7.2-json
 php7.2-opcache
 php7.2-readline
 php7.2-cli
 libapache2-mod-php7.2
 php7.2
 php7.2-bcmath
 php7.2-curl
 php7.2-gd
 php7.2-intl
 php7.2-mbstring
 php7.2-mysql
 php7.2-soap
 php7.2-xml
 php7.2-zip
E: Sub-process /usr/bin/dpkg returned an error code (1)

我尝试过的事情:

rebooting
apt autoremove
apt autoclean
apt clean
re-running our startup script

dpkg --configure php7.2-common导致:

Setting up php7.2-common (7.2.20-1+ubuntu16.04.1+deb.sury.org+1) ...
Internal error!
dpkg: error processing package php7.2-common (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 php7.2-common

幸运的是,我们的Web应用程序似乎运行正常。 现在已经逛了几周,以查找有关这些错误的更多信息。

1 个答案:

答案 0 :(得分:1)

我可以理解,即使您的实例工作正常,您在尝试安装/更新PHP软件包时也遇到了问题;我首先建议您强制安装,以防先前的“软件包安装”被中断,请尝试以下命令:

sudo apt-get install -f

如果仍然无法安装PHP 7.2软件包,请删除有问题的软件包的发布信息文件;您可以尝试从/ var / lib / dpkg / info中删除与该软件包相关的文件。

由于您的所有php7.2都存在问题,请查找与之相关的文件:

ls -l /var/lib/dpkg/info | grep -i php7.2

然后尝试将它们(临时)移动到另一个文件夹(请参见下面的命令示例):

sudo mv /var/lib/dpkg/info/php7.2-.* /tmp

最后使用sudo apt update,您应该能够照常安装软件。请让我知道结果。 我将等待您的回复!

Francisco Z。