FreeBSD pkg_add: warning: package php5-pcre-5.2.6_2 requires php5-5.2.8, but php5-pcre-5.2.6_2 is installed

时间:2019-11-20 08:54:05  来源:igfitidea点击:

问题

使用portupgrade命令升级php时,报错:

Stop in /usr/ports/lang/php5.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade.42275.0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=php5-pcre-5.2.6_2 UPGRADE_PORT_VER=5.2.6_2 make reinstall
—> Restoring the old version
pkg_add: warning: package ‘php5-pcre-5.2.6_2’ requires ‘php5-5.2.8’, but ‘php5-pcre-5.2.6_2’ is installed
** Fix the installation problem and try again.

如何升级php5-pcre?

解决方案

从php 5.2.7开始,pcre扩展与核心php5软件包一起分发,不再作为独立模块。

请按照以下步骤更新安装:

# pkg_delete -f php5-pcre-5.2.6
# pkgdb -F
# portupgrade php5-pcre

如果使用的是portmaster,请执行:

# pkg_delete -f php5-pcre\*
# portmaster php5\*

如果使用的是pecl端口,则可能需要对其进行强制更新,执行:

# portupgrade -f pecl\*

或者

# portmaster pecl\*

如果有pecl-zip,pecl-json和pecl-hash扩展,则需要用捆绑的php5替换它们,执行

# portupgrade -o archivers/php5-zip archivers/pecl-zip
# portupgrade -o devel/php5-json devel/pecl-json
# portupgrade -o security/php5-hash security/pecl-hash

或者

# portmaster -o archivers/php5-zip archivers/pecl-zip
# portmaster -o devel/php5-json devel/pecl-json
# portmaster -o security/php5-hash security/pecl-hash

最后,在本地构建INDEX,并在php更新提交后尝试构建它,
需要在更新lang/php5之后重新构建它:

# cd /usr/ports
# make index