FreeBSD pkg_add:警告:软件包php5-pcre-5.2.6_2需要php5-5.2.8,但已安装php5-pcre-5.2.6_2

时间:2020-01-09 10:38:39  来源:igfitidea点击:

问题描述:我试图使用portupgrade命令将PHP版本从5.2.6升级到5.2.8。
但是报错:

*** Error code 1

Stop in /usr/ports/lang/php5.
*** Error code 1

Stop in /usr/ports/lang/php5.
*** Error code 1

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.
[Updating the pkgdb in /var/db/pkg … – 62 packages found (-0 +1) . done] ** Listing the failed packages (-:ignored / *:skipped / !:failed)
! lang/php5 (php5-pcre-5.2.6_2) (install error)

如何解决此问题并升级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哈希,json和/或zip扩展名,则需要用捆绑的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