我在 FreeBSD 8.0-STABLE 上安装了 php 5.2.12。它是从 ports 安装的,我正在尝试将其升级到 5.3.2。
但是由于某种原因,我的系统无法识别 php 是通过 ports 安装的。当我运行“pkg_version”时,列表不包括 php,但它包括我已安装的所有扩展。
我甚至尝试在“/usr/ports/lang/php5”上执行“make deinstall”,它告诉我端口已被卸载,但 php 似乎仍然正常工作,即“php -v”有效
关于此端口如何从端口系统解除连接,您有什么想法吗?我如何才能让端口系统识别出它已安装 php?
编辑:当我反复运行“make deinstall”时,我总是得到相同的答案
卸载 lang/php5
我从来没有得到
php52 未安装,正在跳过
这正是我第一次运行“make deinstall”后所期望的
答案1
如果您处于 lang/php5 中,那么您正在卸载 PHP 5.3;您需要处于 lang/php52 中才能卸载 PHP 5.2
答案2
粗略地说,PHP 5.3.2 最近才被引入到 FreeBSD 端口树中,为了正确安装 5.3.2,您必须先使用 csup 或 cvsup 更新本地端口树。您是否先执行了这些步骤?
答案3
我不知道为什么,但答案是重建所有端口
端口升级-a
运行此 pkg_version 后现在意识到 php 已安装。
幸运的是,这不是一台生产机器,所以这不是一个问题,如果我在生产机器上遇到这种情况,我想我需要一个更好的答案,所以,如果有人能解释为什么 portupgrade -a 可能解决了我的问题,那将非常有帮助。