如何将 PHP 升级到 7.4.30?

如何将 PHP 升级到 7.4.30?

Ubuntu Server 20.04 上的 PHP 默认版本是 7.4.3,我想将其升级到 7.4.30。我已将 ppa:ondrej/php 添加到 apt 存储库,但 apt upgrade 显示它将升级 PHP 到 8.1。我该如何告诉 apt 我不想跳到 PHP 8?

答案1

总结:

sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1

完整解释:

由于您已经添加了ppa:ondrej/php存储库(通过sudo add-apt-repository ppa:ondrej/php),您可以使用apt-cache列出可安装的可用版本,然后apt install安装特定版本。

apt工具使用别名来简化流行应用程序的安装。正如您无意中发现的,apt install php现在是 的别名apt install php8.1。 ondrej/php 存储库添加了php8.1php8.0和的软件包,并添加了指向 的php7.4别名。phpphp8.1

因为您要安装 php 7.4.30,所以您需要在命令中明确包含版本号apt install。该apt-cache命令将列出所有可用版本。我更喜欢使用,apt-cache madison因为我发现输出比apt-cache showpkg或更容易阅读apt-cache policy,但其中任何一个都可以提供您需要的信息——使用您喜欢的任何命令。

apt-cache madison php7.4

将返回如下内容:

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

这些列的组织方式如下:

<package name> | <version> | <repository>

apt支持使用可选语法安装包的特定版本package=version。在本例中,所需版本是1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1,它来自 ondrej/php 存储库。

综合起来:

 sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1

答案2

Ubuntu 维护人员在官方软件包中包含了错误修复和安全更新。他们保留主要版本。因此无需升级到上游次要版本。

可以看到Ubuntu 20.04有7.4.3-4ubuntu2.12PHP的版本。

您可以参考更新日志

寻找此类“升级”是一个常见的错误。

相关内容