如何一次性更新 FreeBSD 上的 PHP 及其所有模块?

如何一次性更新 FreeBSD 上的 PHP 及其所有模块?

基本上,我通常会做这样的事情:

# 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

相关内容