Im Grunde mache ich es normalerweise so:
# 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
Aber mit PHP habe ich etwa 40 Module und muss sie einzeln ausführen. Gibt es eine bessere (und sichere) Möglichkeit, dies zu tun?
Bearbeiten: Es stellt sich heraus, dass Folgendes erforderlich ist:
# portmaster php5-extensions
Es ist erstaunlich, wie schwer es war, das herauszufinden!
Antwort1
portmaster -db php5*
Antwort2
Zunächst sollte ich sagen, dass ich nicht Portmaster, sondern Portupgrade verwende, aber ich baue Ports, anstatt Pakete zu verwenden!
Mit Portupgrade können Sie Folgendes einfügen:
portupgrade php\*
Dadurch werden alle PHP-Ports aktualisiert. Portmaster macht möglicherweise dasselbe.
Außerdem können Sie portsnap mehrere Befehle auf einmal geben, so dass Sie
portsnap fetch update
Antwort3
Ich baue/aktualisiere alle Pakete, die auf php5 basieren, aus Sicherheitsgründen neu. Du musst den vollständigen Paketnamen inklusive Version angeben. Die genaue Version findest du mit pkg_info heraus:
# pkg_info|grep php
php5-5.3.8 PHP Scripting Language
Erstellen/aktualisieren Sie dann PHP und alle davon abhängigen Ports mit:
# portmaster -r php5-5.3.8
Antwort4
Eine modernere Antwort, die nur Folgendes verwendet, pkg
lautet:
pkg install `pkg info | grep php | sed 's/72/74/; s/-7.*//'`
Das Beispiel aktualisiert PHP 7.2 auf 7.4. Der erste sed-Befehl muss an die installierte und die Zielversion von PHP angepasst werden.
Die Versionsauflösung von pkg
weiß nicht, dass einige PHP-Erweiterungen, die in älteren PHP-Versionen benötigt werden, jetzt Teil von PHP 7.4 sind. Möglicherweise müssen Sie einige davon mit einem Befehl wie diesem entfernen: pkg delete -fy php72-hash
.