PHP和PHP7.2包之间有什么区别?

我应该同时安装它们以及它们的模块吗?
apt-cache depends php
php
  Depends: php7.2

有两个用于PHP CLI的软件包:
apt-cache policy php7.2-cli 
php7.2-cli:
  Installed: (none)
  Candidate: 7.2.7-0ubuntu0.18.04.2
  Version table:
     7.2.7-0ubuntu0.18.04.2 500
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
     7.2.3-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

下一个:
apt-cache policy php-cli 
php-cli:
  Installed: (none)
  Candidate: 1:7.2+60ubuntu1
  Version table:
     1:7.2+60ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu bionic/main i386 Packages
2个回答

php 是一个 元包。它不包含任何软件,只是通过其依赖关系链接到“正确”的软件包。

apt show php 中可以看到:

这个软件包是一个依赖包,它依赖于Debian的默认PHP版本(目前为7.0)。

(因为我使用的是16.04,所以是7.0)

所以你可以选择安装 php 或者 php7.2。但请注意:在下次升级发布时,php 可能会升级到下一个版本,而 php7.2 的版本是固定的,可能会导致一些升级后的问题。

对于普通用户来说,建议安装元包。


还有一些依赖于多个其他软件包的元软件包,因此您可以仅使用一个元软件包安装整个软件包,例如unity-desktop

来自help.ubuntu.com

apt(Ubuntu使用的打包系统)的一个方便功能是使用元软件包。这些软件包不包含实际的软件,它们只是依赖于其他软件包的安装。这种设置允许通过仅选择适当的元软件包来安装整套软件。


链接:


实际上,建议安装元包而不是单独的软件包,这样在升级版本时可以更顺利地进行,并且可以正确更新PHP而不会出现问题。这是在16.04和18.04版本周期中服务器团队强烈提到和讨论的事项。 - Thomas Ward
谢谢,我已经更新了答案以指出这一点。你有那个讨论的链接吗? - pLumo
很遗憾,这是在16.04版本的IRC讨论中,在一个未记录的频道上进行的PHP过渡讨论。我们在16.04的开发周期中进行了很多关于软件包过渡的讨论,但现在的普遍想法是只安装元包。 - Thomas Ward

php-* 软件包是元软件包,依赖于相应的 php7.2-* 软件包,后者提供实际的 PHP 软件。

这些元软件包的目的是使升级更加顺畅:当您升级到提供 PHP 7.3 的新版 Ubuntu 时,php-* 软件包将升级到新版本,当然会依赖于新的 php7.3-* 软件包。因此,新的 php7.3-* 软件包将自动安装,旧的 php7.2-* 软件包将被标记为不再使用(并可通过 apt autoremove 命令删除)。

如果您只安装了 php7.2-* 软件包,它们现在可以正常工作,但以后您需要手动安装更新的 PHP 版本的软件包,因此建议安装 php-* 软件包。