Wie aktualisiere ich PHP und alle seine Module unter FreeBSD auf einmal?

Wie aktualisiere ich PHP und alle seine Module unter FreeBSD auf einmal?

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, pkglautet:

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 pkgweiß 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.

verwandte Informationen