PHP-Upgrade unter Ubuntu inklusive bereits installierter Module
Ein einfacher Weg, unter Ubuntu/Debian die PHP-Version samt allen bereits installierten Modulen zu aktualisieren.
PHP 8.2 ist erschienen, und da PHP nach wie vor die Grundlage dafür ist, wie wir Websites entwickeln, warum es nicht gleich ausprobieren. Dank deb.sury.org ist es für Ubuntu und Debian nahezu sofort verfügbar, es geht also nur darum, apt install auszuführen. Um nicht die Namen aller Modulpakete, die ich für 8.1 installiert habe, von Hand aufschreiben zu müssen, habe ich die Stärke des Linux-Terminals genutzt, mehrere Befehle verknüpft – und schon war es erledigt:
dpkg -l | grep php8.1 | awk '{print $2}' | tr -s "\n" " " | sed -e "s/1/2/g" | xargs sudo apt install -y
Beschreibung der einzelnen Teile:
- dpkg -l – listet alle installierten Pakete auf
- grep php8.1 – filtert nur die Pakete heraus, die php8.1 enthalten
- awk '{print $2}' – die Ausgabe besteht aus mehreren Spalten, der Name des php8.1-Pakets steht in der zweiten Spalte
- tr -s "\n" " " – die Ausgabe ist zeilenweise, d. h. jedes Paket steht in einer neuen Zeile; so wird sie in eine einzige Zeile umgewandelt, indem das Zeilenumbruchzeichen durch ein Leerzeichen ersetzt wird
- sed -e "s/1/2/g" – beim Upgrade von 8.1 auf 8.2 genügt es, in den Paketnamen 1 durch 2 zu ersetzen
- xargs sudo apt install -y – mit xargs übergeben wir die resultierende Zeile als Parameter an den Befehl apt install mit dem nötigen sudo, und mit der Option -y bestätigen wir alle Änderungen automatisch
Für andere Distributionen als Debian- und Ubuntu-Klone müsste der Befehl wahrscheinlich grundlegend angepasst werden. Als Inspiration kann er aber sicher dienen