4

Shall I install both of them and both of its modules?

apt-cache depends php
php
  Depends: php7.2

And there is two packages for 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

The next one:

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
Braiam
  • 67,791
  • 32
  • 179
  • 269

2 Answers2

12

php is a meta package. It does not contain any software, but just links to the "correct" package via its dependency/ies.

From apt show php:

This package is a dependency package, which depends on Debian's default PHP version (currently 7.0).

(7.0, because I'm using 16.04)

So it is up to you whether to install php or php7.2. But note: with the next release upgrade, php might get upgraded to the next version, while with php7.2, the version is fixed which might lead to some issues after upgrading.

For the normal user® it is recommended to install the meta-package.


There are also meta-packages depending on multiple other packages, so you can install a whole software bundle with just one meta-package, e.g. unity-desktop.

From help.ubuntu.com:

One of the handy features of apt (the packaging system used by Ubuntu) is the use of metapackages. These packages do not contain actual software, they simply depend on other packages to be installed. This setup allows entire sets of software to be installed by selecting only the appropriate metapackage


Links:

pLumo
  • 26,947
  • It's actually recommended to install the metapackages instead of the individual packages themselves so that upgrading between releases goes more smoothly and updates PHP properly without problems. This was something strongly mentioned and discussed in the 16.04 and 18.04 cycles among the server team – Thomas Ward Aug 28 '18 at 13:45
  • Thanks, I updated the answer to point this out. Do you have a link to that discussion ? – pLumo Aug 28 '18 at 13:50
  • Unfortunately not, it was during IRC discussions about the PHP transitions back in the 16.04 cycles on an unlogged channel. We had a lot of discussions about package transisions back in 16.04's dev cycle, but the general thought nowadays is to just install the metapackage – Thomas Ward Aug 28 '18 at 13:55
2

The php-* packages are metapackages which depend on the corresponding php7.2-* packages, the latter providing the actual PHP software.

The purpose of those metapackages is to make upgrades smoother: when you upgrade to a newer Ubuntu release which provides, say, PHP 7.3, the php-* packages will be upgraded to the newer versions, which of course will depend on the new php7.3-* packages. Thus the new php7.3-* packages will be automatically installed, and the old php7.2-* ones will be marked as no longer used (and to be removed with apt autoremove).

If you install only the php7.2-* packages, they will work fine for now, but later you would need to install the packages for newer PHP versions manually, so yes, it is recommended to install the php-* ones.

fkraiem
  • 12,555
  • 4
  • 35
  • 40