我正在全新安装的 Ubuntu 20.04 上安装 php/apache:
apt install apache2 php7.4 php7.4-mysql php7.4-json php7.4-apcu php7.4-memcached php7.4-imap php7.4-mbstring
然后我注意到了这些消息:
Note, selecting 'php-apcu' instead of 'php7.4-apcu'
Note, selecting 'php-memcached' instead of 'php7.4-memcached'
安装的 php 包:
apt list --installed | grep php
libapache2-mod-php7.4/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed,automatic]
php-apcu/focal,focal,now 5.1.18+4.0.11-1build1 amd64 [installed]
php-common/focal,focal,focal,focal,now 2:75 all [installed,automatic]
php-igbinary/focal,focal,now 3.1.2+2.0.8-1build1 amd64 [installed,automatic]
php-memcached/focal,focal,now 3.1.4+2.2.0-1 amd64 [installed]
php-msgpack/focal,focal,now 2.1.0beta1-0ubuntu2 amd64 [installed,automatic]
php7.4-cli/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed]
php7.4-common/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed,automatic]
php7.4-imap/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed]
php7.4-json/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed]
php7.4-mbstring/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed]
php7.4-mysql/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed]
php7.4-opcache/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed,automatic]
php7.4-readline/focal-updates,focal-security,focal-updates,focal-security,now 7.4.3-4ubuntu2.2 amd64 [installed,automatic]
php7.4/focal-updates,focal-updates,focal-security,focal-security,focal-updates,focal-updates,focal-security,focal-security,now 7.4.3-4ubuntu2.2 all [installed]
据我所知:当新版本的 php 发布时,我无法控制是否安装没有版本的 php 包。如果我想自己决定(通过替代方案)何时使用新版本的 php,我必须在安装它们时在包名称中包含版本号。
因此我想知道为什么没有 php7.4-memcached 包。
但是查看版本时,apt list
我注意到四个未命名为 php7.4-* 的包在信息中有不同的版本,例如:
php-memcached/focal,focal,now 3.1.4+2.2.0-1 amd64 [installed]
是否可以假设这四个 php 软件包不遵循 php 版本控制,而是遵循其他版本控制,例如 php-memcached 遵循 memcached?或者还有其他解释?
答案1
这是正常的 - 这些php
包在后台引用特定于版本的包,无论如何您都应该安装未版本化的 PHP 包。这些包不太可能从系统上的 PHP 版本发生变化,特别是因为您使用的是 LTS 版本。目前,Focal 中不可能出现“新”PHP 版本。
这是预期行为。不过请相信我,它将从 PHP 7.4 安装 memcached(或与 7.4 兼容的 memcached)。并非所有 PHP 包都源自 PHP 源代码,有些是单独编译的(并具有单独的源包),因此它们必须使用未版本化的php
包名称语法进行安装。