无法纠正问题,有缺陷的数据包处于“保持原样”模式。当我尝试安装 phpmyadmin 时

无法纠正问题,有缺陷的数据包处于“保持原样”模式。当我尝试安装 phpmyadmin 时

我尝试在 ubuntu 20.10 上安装 phpmyadmin,但是出现错误:

$ sudo apt install phpmyadmin
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation : 

Les paquets suivants contiennent des dépendances non satisfaites :
 php-phpmyadmin-sql-parser : Dépend: php-mbstring
 php-twig : Dépend: php-mbstring
 phpmyadmin : Dépend: php-mbstring
              Recommande: php-bz2
              Recommande: php-zip
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

如果我尝试:

$ sudo apt install php-mbstring
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation : 

Les paquets suivants contiennent des dépendances non satisfaites :
 php7.4-mbstring : Dépend: php7.4-common (= 7.4.3-4ubuntu2.4) mais 7.4.9-1ubuntu1 devra être installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

我尝试清除所有 php-* 包并重新安装php7.4

aptitude不要解决问题apt -f install...

编辑 :

$ php --version
PHP 7.4.9 (cli) (built: Aug 21 2020 23:31:19) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies


$ apt-cache policy  php7.4-mbstring phpmyadmin php7.4-common
php7.4-mbstring:
  Installé : (aucun)
  Candidat : 7.4.3-4ubuntu2.4
 Table de version :
     7.4.3-4ubuntu2.4 500
        500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages
        500 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
     7.4.3-4ubuntu1 500
        500 http://fr.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
phpmyadmin:
  Installé : (aucun)
  Candidat : 4:4.9.5+dfsg1-2
 Table de version :
     4:4.9.5+dfsg1-2 500
        500 http://fr.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
        500 http://fr.archive.ubuntu.com/ubuntu focal/universe i386 Packages
php7.4-common:
  Installé : 7.4.9-1ubuntu1
  Candidat : 7.4.9-1ubuntu1
 Table de version :
 *** 7.4.9-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu groovy/main amd64 Packages
        100 /var/lib/dpkg/status
     7.4.3-4ubuntu2.4 500
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
     7.4.3-4ubuntu1 500
        500 http://fr.archive.ubuntu.com/ubuntu focal/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

答案1

我在安装 php7.4-pgsql 时遇到了类似的问题,我想将其安装在 ubuntu 20.04 上,而其余 php7.4 模块则安装在 ubuntu 18.04 上。

$ sudo apt install php7.4-pgsql
The following packages contain unfulfilled dependencies
php7.4-pgsql : depends: php7.4-common (= 7.4.3-4ubuntu2.4) but 7.4.18-2 + ubuntu18.04.1 + deb.sury.org + 1 must be installed 
E: Unable to correct problems, defective packages are in "keep as is" mode.

我不知道如何解释这个错误消息...我正在显示 php-7.4 包列表:

$ sudo dpkg --list | grep php7.4
ii  php7.4                                                      7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              all          server-side, HTML-embedded scripting language (metapackage)
ii  php7.4-cli                                                  7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        command-line interpreter for the PHP scripting language
ii  php7.4-common                                               7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        documentation, examples and common module for PHP
ii  php7.4-curl                                                 7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        CURL module for PHP
ii  php7.4-gd                                                   7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        GD module for PHP
ii  php7.4-mysql                                                7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        MySQL module for PHP
ii  php7.4-json                                                 7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        JSON module for PHP
ii  php7.4-opcache                                              7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        Zend OpCache module for PHP
ii  php7.4-readline                                             7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        readline module for PHP
ii  php7.4-xml                                                  7.4.18-2+ubuntu18.04.1+deb.sury.org+1                              amd64        DOM, SimpleXML, XML, and XSL module for PHP

显然,源中存在冲突,旧软件包来自 7.4.18-2 + ubuntu18.04.1 + deb.sury.org + 1,而新软件包由 7.4.3-4ubuntu2.4 提供...

所以我决定删除所有 php7.4-* 模块:

$ sudo apt remove --purge php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-json php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml

之后重新安装它们:

$ sudo sudo apt install php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml -y

新的软件包不是来自源 7.4.18-2 + ubuntu18.04.1 + deb.sury.org + 1,而是来自 7.4.3-4ubuntu2.4:

$ sudo dpkg --list | grep php7.4
ii  php7.4                                                      7.4.3-4ubuntu2.4                                                   all          server-side, HTML-embedded scripting language (metapackage)
ii  php7.4-cli                                                  7.4.3-4ubuntu2.4                                                   amd64        command-line interpreter for the PHP scripting language
ii  php7.4-common                                               7.4.3-4ubuntu2.4                                                   amd64        documentation, examples and common module for PHP
ii  php7.4-curl                                                 7.4.3-4ubuntu2.4                                                   amd64        CURL module for PHP
ii  php7.4-gd                                                   7.4.3-4ubuntu2.4                                                   amd64        GD module for PHP
ii  php7.4-json                                                 7.4.3-4ubuntu2.4                                                   amd64        JSON module for PHP
ii  php7.4-mysql                                                7.4.3-4ubuntu2.4                                                   amd64        MySQL module for PHP
ii  php7.4-opcache                                              7.4.3-4ubuntu2.4                                                   amd64        Zend OpCache module for PHP
ii  php7.4-readline                                             7.4.3-4ubuntu2.4                                                   amd64        readline module for PHP
ii  php7.4-xml                                                  7.4.3-4ubuntu2.4                                                   amd64        DOM, SimpleXML, XML, and XSL module for PHP

php7.4-pgsql 包终于正确安装

sudo apt install php7.4-pgsql
sudo dpkg --list | grep php7.4-pgsql
ii  php7.4-pgsql

答案2

我升级了 Ubuntu 版本,它解决了我的问题

相关内容