基本上,我通常会做这样的事情:
# 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
令人惊奇的是,发现这一点有多么困难!
答案1
portmaster -db php5*
答案2
首先我应该说我不使用 portmaster,我使用 portupgrade,但是我构建端口而不是使用包!
Portupgrade 允许您放置:
portupgrade php\*
这将升级所有 php 端口。Portmaster 可能会做同样的事情。
您还可以一次给 portsnap 多个命令,这样您就可以
portsnap fetch update
答案3
为了安全起见,我重建/更新了所有依赖 php5 的软件包。您需要指定完整的 pkg-name(包括版本)。使用 pkg_info 找出确切的版本:
# pkg_info|grep php
php5-5.3.8 PHP Scripting Language
然后重建/更新 php 和所有依赖它的端口:
# portmaster -r php5-5.3.8
答案4
仅使用的更现代的答案pkg
是:
pkg install `pkg info | grep php | sed 's/72/74/; s/-7.*//'`
该示例将 PHP 7.2 升级到 7.4。第一个 sed 命令需要根据已安装的 PHP 版本和目标版本进行调整。
的版本解析pkg
不知道旧版本 PHP 中需要的一些 PHP 扩展现在是 PHP 7.4 的一部分。您可能需要使用如下命令删除其中几个:pkg delete -fy php72-hash
。