说明:本次软件安装失败提示安装损失,即无法完全安装。这情况一般是多次安装卸载同一款软件导致的,大部都是卸载后,还清理干净残留文件或者一些配置文件及目录等,造成再次安装失败。
这是ubuntu服务器上安装mariadb服务时失败,发现的一段异常信息。
ubuntu@VM-0-10-ubuntu:~$ sudo dpkg --configure -a
Setting up mariadb-common (1:10.6.23-0ubuntu0.22.04.1) ...
update-alternatives: error: alternative path /etc/mysql/mariadb.cnf doesn't exist
dpkg: error processing package mariadb-common (--configure):
installed mariadb-common package post-installation script subprocess returned error exit status 2
dpkg: dependency problems prevent configuration of mariadb-client-core-10.6:
mariadb-client-core-10.6 depends on mariadb-common (>= 1:10.6.23-0ubuntu0.22.04.1); however:
Package mariadb-common is not configured yet.
dpkg: error processing package mariadb-client-core-10.6 (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libmariadb3:amd64:
libmariadb3:amd64 depends on mariadb-common; however:
Package mariadb-common is not configured yet.
dpkg: error processing package libmariadb3:amd64 (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mariadb-client-10.6:
mariadb-client-10.6 depends on mariadb-client-core-10.6 (>= 1:10.6.23-0ubuntu0.22.04.1); however:
Package mariadb-client-core-10.6 is not configured yet.
dpkg: error processing package mariadb-client-10.6 (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mariadb-server-core-10.6:
mariadb-server-core-10.6 depends on mariadb-common (>= 1:10.6.23-0ubuntu0.22.04.1); however:
Package mariadb-common is not configured yet.
dpkg: error processing package mariadb-server-core-10.6 (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mariadb-common
mariadb-client-core-10.6
libmariadb3:amd64
mariadb-client-10.6
mariadb-server-core-10.6
注意以下这一行:
update-alternatives: error: alternative path /etc/mysql/mariadb.cnf doesn't exist #目标文件不存在
由此可见问题就是:MariaDB 配置文件丢了,导致整个系统包管理器卡住,装不了任何东西!
当然你可以通过验证文件是否存在:
ubuntu@VM-0-10-ubuntu:~$ ls /etc/mysql/mariadb.cnf
ls: 无法访问 '/etc/mysql/mariadb.cnf': 没有那个文件或目录
确定文件不存在,说明找到原因了。
以下是最安全、不会丢数据的修复命令,一步一步复制运行,马上恢复正常!
第一步:修复,强制重建 MariaDB 配置
直接复制运行这 4 行,立刻解决:(把不存在的文件和目录先创建出来)
sudo mkdir -p /etc/mysql
sudo touch /etc/mysql/mariadb.cnf
sudo dpkg --configure -a
sudo apt install -f -y
运行完你会看到:所有错误消失!
sudo dpkg --configure -a
第二步:彻底清理坏掉的 MariaDB
sudo apt remove --purge mariadb* -y
sudo apt autoremove -y
sudo apt clean
第三步:重新安装 MariaDB
完成上面的清理后,再次安装即可。
sudo apt install mariadb-server mariadb-client -y
这是真实的使用经验,很多时候多次安装卸载软件时可能会出现这样的情况,遇到这类问题可以通过日志和安装时返回的信息判断找出原因,解决问题。