基本上,我通常会这样做:
# portsnap fetch
# portsnap update
# portmaster -L | grep -B1 "New version"
===>>> php5-5.2.11
===>>> New version available: php5-5.2.12
# portmaster php5-5.2.11
但是对于 PHP,我有大约 40 个模块,并且必须一个一个地处理它们。有没有更好(和安全)的方法来做到这一点?
编辑:事实证明这是需要的:
# portmaster php5-extensions
令人惊讶的是,要找出它是多么困难!
首先我应该说我不使用portmaster,我使用portupgrade,但是我构建端口而不是使用包!
Portupgrade 允许您放置:
这将升级所有 php 端口。Portmaster 可能会做同样的事情。
你也可以一次性给 portsnap 多个命令,所以你可以把
为了安全起见,我根据 php5 重建/更新所有软件包。您需要指定完整的 pkg 名称,包括版本。使用 pkg_info 找出确切的版本:
然后重建/更新 php 和所有依赖于它的端口:
使用 only 的更现代的答案
pkg
是:该示例将 PHP 7.2 升级到 7.4。第一个 sed 命令需要针对 PHP 的已安装版本和目标版本进行调整。
版本解析
pkg
不知道旧版本 PHP 中需要的一些 PHP 扩展现在是 PHP 7.4 的一部分。您可能必须使用以下命令删除其中的几个:pkg delete -fy php72-hash
.