Debian10升级至Debian11时因phpmyadmin导致apt full-upgrade失败
Debian 10升级至11后phpmyadmin安装失败及后续问题
问题背景
服务器原环境为Debian 10,运行apache2、PHP 7.3、MariaDB及phpMyAdmin,升级至Debian 11时,执行sudo apt full-upgrade过程中phpMyAdmin包处理失败,但系统版本已成功切换至Debian 11(通过lsb_release -a验证)。后续出现apt行为异常、MySQL无法使用、网站无法连接数据库的问题,apt update显示有300+包待更新,apt fix-broken install无法解决。
升级时的错误信息
Préparation du dépaquetage de .../30-phpmyadmin_4%3a5.0.4+dfsg2-2+deb11u1_all.deb ... Determining localhost credentials from /etc/mysql/debian.cnf: succeeded. dpkg-maintscript-helper: error: file '/usr/share/phpmyadmin/js/vendor/codemirror/addon/hint' not owned by package 'phpmyadmin:all' dpkg-maintscript-helper: error: file '/usr/share/phpmyadmin/js/vendor/codemirror/addon/hint/sql-hint.js' not owned by package 'phpmyadmin:all' dpkg-maintscript-helper: error: file '/usr/share/phpmyadmin/js/vendor/codemirror/addon/hint/show-hint.js' not owned by package 'phpmyadmin:all' dpkg-maintscript-helper: error: file '/usr/share/phpmyadmin/js/vendor/codemirror/addon/hint/show-hint.css' not owned by package 'phpmyadmin:all' dpkg-maintscript-helper: error: directory '/usr/share/phpmyadmin/js/vendor/codemirror/addon/hint' contains files not owned by package phpmyadmin:all, cannot switch to symlink dpkg: erreur de traitement de l'archive /tmp/apt-dpkg-install-7oxSMZ/30-phpmyadmin_4%3a5.0.4+dfsg2-2+deb11u1_all.deb (--unpack) : new phpmyadmin package pre-installation script subprocess returned error exit status 1
系统版本验证
root@SERV-TEST-UPDATE-v2:/home/informatique# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
问题根源
- phpMyAdmin文件归属冲突:Debian 11版本的phpMyAdmin调整了codemirror组件的文件结构,计划将
/usr/share/phpmyadmin/js/vendor/codemirror/addon/hint目录转为符号链接,但该目录下的旧文件不属于新版本的phpmyadmin包,导致dpkg无法完成目录转换,触发安装失败。 - dpkg破损状态连锁反应:phpMyAdmin安装失败导致dpkg处于破损状态,后续apt无法正常处理其他依赖包的升级,进而引发MySQL服务异常、PHP版本兼容性问题,最终导致网站无法连接数据库。
解决步骤
1. 修复phpMyAdmin破损问题
- 备份phpMyAdmin配置文件:
mkdir -p /root/phpmyadmin-config-backup cp /usr/share/phpmyadmin/config.inc.php /root/phpmyadmin-config-backup/ - 强制移除破损的phpMyAdmin包:
dpkg --remove --force-all phpmyadmin - 清理残留的phpMyAdmin文件:
rm -rf /usr/share/phpmyadmin/ - 修复dpkg状态:
dpkg --configure -a
2. 完成系统包升级
apt update && apt full-upgrade -y
3. 重新安装phpMyAdmin
apt install phpmyadmin -y
安装过程中注意选择正确的web服务器(apache2),并配置数据库连接。
4. 检查并修复MySQL服务
- 查看MariaDB状态:
systemctl status mariadb - 若服务未启动,手动启动并设置开机自启:
systemctl start mariadb systemctl enable mariadb - 验证数据库连接:
mysql -u root -p
若登录失败,可通过
/etc/mysql/debian.cnf中的凭证尝试登录,或重置root密码。
5. 调整PHP版本兼容性
Debian 11默认使用PHP 7.4,需确保apache2启用对应模块:
a2dismod php7.3 a2enmod php7.4 systemctl restart apache2
内容的提问来源于stack exchange,提问作者itsaikara
相关产品推荐
相关产品推荐

