从18.04升级到ubuntu 20.04后无法安装php

Sis*_*sir 3 php package-management apt dependencies

我已经从 ubuntu 18.04 到 20.04 进行了版本升级。删除了之前安装的 PHP。然后我跑

sudo apt install php-cli

但我遇到以下错误:

The following packages have unmet dependencies:
 php7.4-cli : Depends: php7.4-common (= 7.4.3-4ubuntu2.4) but 7.4.8-1+ubuntu18.04.1+deb.sury.org+3 is to be installed
              Depends: php7.4-json but it is not going to be installed
              Depends: php7.4-opcache but it is not going to be installed
              Depends: php7.4-readline but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

所以我怀疑7.4.8-1+ubuntu18.04.1+deb.sury.org+3包裹仍然有效?我已经检查了/etc/apt/sources.list目录/etc/apt/sources.list.d/,但没有找到任何与该包匹配的源。

我还应该看哪里?

编辑

apt policy php7.4-common

php7.4-common:
  Installed: 7.4.8-1+ubuntu18.04.1+deb.sury.org+3
  Candidate: 7.4.8-1+ubuntu18.04.1+deb.sury.org+3
  Version table:
 *** 7.4.8-1+ubuntu18.04.1+deb.sury.org+3 100
        100 /var/lib/dpkg/status
     7.4.3-4ubuntu2.4 500
        500 http://bd.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
     7.4.3-4ubuntu1 500
        500 http://bd.archive.ubuntu.com/ubuntu focal/main amd64 Packages

Run Code Online (Sandbox Code Playgroud)

pLu*_*umo 6

您卸载了php,但没有卸载它的依赖项,因此仍然有剩余的内容ppa(我猜是ppa:ondrej/php)。

尝试一下autoremove,可能已经足够了:

sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)

如果没有,您可以手动卸载有问题的软件包:

sudo apt remove php7.4-common
Run Code Online (Sandbox Code Playgroud)

如果这还不够,它可能有助于添加ppa 再次并删除ppa-purge

sudo add-apt-repository ppa:ondrej/php
sudo apt install ppa-purge
sudo ppa-purge ppa:ondrej/php
Run Code Online (Sandbox Code Playgroud)