La versión predeterminada de PHP en Ubuntu Server 20.04 es 7.4.3, quiero actualizarla a 7.4.30. Agregué ppa:ondrej/php al repositorio de apt, pero la actualización de apt muestra que actualizará PHP a 8.1. ¿Cómo puedo decirle a apt que no quiero pasar a PHP 8?
Respuesta1
tl;dr:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
Explicación completa:
Como ya agregó el ppa:ondrej/php
repositorio (a través de sudo add-apt-repository ppa:ondrej/php
), puede usarlo apt-cache
para enumerar las versiones disponibles que se pueden instalar y luego apt install
instalar una versión específica.
La apt
herramienta utiliza alias para simplificar la instalación de aplicaciones populares. Como habrás descubierto sin darte cuenta, apt install php
ahora es un alias de apt install php8.1
. El repositorio ondrej/php agrega paquetes para php8.1
, php8.0
y php7.4
, y agrega un alias para php
que apunte a php8.1
.
Como desea instalar php 7.4.30, deberá incluir explícitamente el número de versión en el apt install
comando. El apt-cache
comando enumerará todas las versiones disponibles. Prefiero usar apt-cache madison
porque encuentro que el resultado es más fácil de leer que apt-cache showpkg
o apt-cache policy
, pero cualquiera de estos le proporcionará la información que necesita; use el comando que prefiera.
apt-cache madison php7.4
devolverá algo como esto:
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
Las columnas están organizadas así:
<package name> | <version> | <repository>
apt
admite la instalación de una versión específica de un paquete utilizando la package=version
sintaxis opcional. En este caso, la versión deseada es 1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
, que proviene del repositorio ondrej/php.
Poniendolo todo junto:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
Respuesta2
Los mantenedores de Ubuntu incluyen correcciones de errores y actualizaciones de seguridad en los paquetes oficiales. Mantienen la versión principal. Por lo tanto, no es necesario actualizar a versiones menores.
Puedes ver que Ubuntu 20.04 tiene la 7.4.3-4ubuntu2.12
versión de PHP.
Puedes referirte aRegistro de cambios
Es un error frecuente buscar este tipo de "actualizaciones".