在我的 Ubuntu 22.04.1 服务器上运行 apt upgrade 时,我收到一个阻止所有升级的错误。经过几周的谷歌搜索,我还是不知所措。还有人知道原因吗?
Do you want to continue? [Y/n] y
Extracting templates from packages: 100%
Preconfiguring packages ...
Setting up mariadb-common (1:10.6.12-0ubuntu0.22.04.1) ...
update-alternatives: error: cannot stat file '/etc/alternatives/my.cnf': Invalid argument
dpkg: error processing package mariadb-common (--configure):
installed mariadb-common package post-installation script subprocess returned error
exit status 2
Errors were encountered while processing:
mariadb-common
E: Sub-process /usr/bin/dpkg returned an error code (1)
答案1
的情况下mariadb-common
,有一个名为的符号链接文件/etc/alternatives/my.cnf
,Ubuntu 替代系统使用:
$ ls -l /etc/alternatives/my.cnf
lrwxrwxrwx 1 root root 22 Mar 11 10:39 /etc/alternatives/my.cnf -> /etc/mysql/mariadb.cnf
该文件应该仅由 Ubuntu 替代系统管理(使用update-alternatives
命令)...以其他方式处理该文件将会破坏它并导致 Ubuntu 替代系统无法识别/无法使用它...看来这就是您遇到的情况...因此出现错误:
update-alternatives:错误:无法统计文件‘/etc/alternatives/my.cnf’:参数无效
要解决此问题,请删除现有的符号链接/文件,如下所示:
sudo rm /etc/alternatives/my.cnf
然后以正确的方式重新创建它(或者在你的情况sudo apt upgrade
下)像这样:
$ sudo dpkg-reconfigure mariadb-common
update-alternatives: using /etc/mysql/mariadb.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode