A versão padrão do PHP no Ubuntu Server 20.04 é 7.4.3, quero atualizá-la para 7.4.30. Eu adicionei ppa:ondrej/php ao repositório apt, mas apt upgrade mostra que atualizará o PHP para 8.1. Como posso saber ao apt que não quero pular para o PHP 8?
Responder1
dr:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
Explicação completa:
Como você já adicionou o ppa:ondrej/php
repositório (via sudo add-apt-repository ppa:ondrej/php
), você pode usar apt-cache
para listar as versões disponíveis que podem ser instaladas e depois apt install
instalar uma versão específica.
A apt
ferramenta usa aliases para simplificar a instalação de aplicativos populares. Como você descobriu inadvertidamente, apt install php
agora é um alias para apt install php8.1
. O repositório ondrej/php adiciona pacotes para php8.1
, php8.0
, e php7.4
, e adiciona um alias para php
que aponte para php8.1
.
Como você deseja instalar o php 7.4.30, você precisará incluir explicitamente o número da versão no apt install
comando. O apt-cache
comando listará todas as versões disponíveis. Prefiro usar apt-cache madison
porque acho a saída mais fácil de ler do que apt-cache showpkg
ou apt-cache policy
, mas qualquer um deles fornecerá as informações necessárias - use o comando de sua preferência.
apt-cache madison php7.4
retornará algo assim:
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
As colunas estão organizadas assim:
<package name> | <version> | <repository>
apt
suporta a instalação de uma versão específica de um pacote usando a package=version
sintaxe opcional. Neste caso, a versão desejada é 1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
a , que é do repositório ondrej/php.
Juntando tudo:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
Responder2
Os mantenedores do Ubuntu incluem correções de bugs e atualizações de segurança nos pacotes oficiais. Eles mantêm a versão principal. Portanto, não há necessidade de atualizar para versões secundárias upstream.
Você pode ver que o Ubuntu 20.04 possui a 7.4.3-4ubuntu2.12
versão PHP.
Você pode consultarRegistro de alterações
É um erro frequente procurar este tipo de “upgrades”.