如何在 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,但後來我建立 ports 而不是使用套件!

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

相關內容