Die Standardversion von PHP auf Ubuntu Server 20.04 ist 7.4.3, ich möchte sie auf 7.4.30 aktualisieren. Ich habe ppa:ondrej/php zum Apt-Repository hinzugefügt, aber Apt Upgrade zeigt, dass PHP auf 8.1 aktualisiert wird. Wie kann ich Apt mitteilen, dass ich nicht auf PHP 8 springen möchte?
Antwort1
kurz und knapp:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
Vollständige Erklärung:
ppa:ondrej/php
Da Sie das Repository bereits (über ) hinzugefügt haben sudo add-apt-repository ppa:ondrej/php
, können Sie verwenden, apt-cache
um die verfügbaren Versionen aufzulisten, die installiert werden können, und dann apt install
eine bestimmte Version zu installieren.
Das apt
Tool verwendet Aliase, um die Installation beliebter Anwendungen zu vereinfachen. Wie Sie versehentlich entdeckt haben, apt install php
ist jetzt ein Alias für apt install php8.1
. Das ondrej/php-Repository fügt Pakete für php8.1
, php8.0
, und php7.4
hinzu und fügt einen Alias für php
hinzu, der auf verweist php8.1
.
Da Sie PHP 7.4.30 installieren möchten, müssen Sie die Versionsnummer explizit in den apt install
Befehl aufnehmen. Der apt-cache
Befehl listet alle verfügbaren Versionen auf. Ich bevorzuge die Verwendung von , apt-cache madison
da die Ausgabe meiner Meinung nach leichter zu lesen ist als apt-cache showpkg
die von oder apt-cache policy
, aber jede dieser Optionen liefert die benötigten Informationen – verwenden Sie den Befehl, den Sie bevorzugen.
apt-cache madison php7.4
gibt etwa Folgendes zurück:
php7.4 | 1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1 | http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages
php7.4 | 7.4.3-4ubuntu2.12 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
php7.4 | 7.4.3-4ubuntu2.12 | http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
php7.4 | 7.4.3-4ubuntu1 | http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
Die Spalten sind folgendermaßen organisiert:
<package name> | <version> | <repository>
apt
unterstützt die Installation einer bestimmten Version eines Pakets mithilfe der optionalen package=version
Syntax. In diesem Fall ist die gewünschte Version 1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
, die aus dem ondrej/php-Repository stammt.
Alles zusammen:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
Antwort2
Die Ubuntu-Betreuer nehmen Fehlerbehebungen und Sicherheitsupdates in die offiziellen Pakete auf. Sie behalten die Hauptversion bei. Es besteht also keine Notwendigkeit, auf Upstream-Nebenversionen zu aktualisieren.
Sie können sehen, dass Ubuntu 20.04 die 7.4.3-4ubuntu2.12
Version von PHP hat.
Weitere Informationen finden Sie unterÄnderungsprotokoll
Es ist ein häufiger Fehler, nach dieser Art von „Upgrades“ zu suchen.