基本上,我通常會做這樣的事情:
# 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
。