现象:使用apt/apt-get安装/卸载/更新任意包时,会报mysql相关的错误,说mysql安装包有问题帮你更新什么的,然后更新又会报错,然后卸载又不能卸载。
网上的方法:各种手段彻底卸载mysql,然后重装。但是通过apt卸载会出错。
我觉得是因为mysql这个软件没有安装好影响了包管理器dpkg的正常功能,我也不太懂,直觉告诉我需要从dpkg里去卸载mysql,这样才能清除dpkg里mysql相关的配置,然后重启再安装,最好重启吧,不然安装可能还是会出错,比如某个资源被某个进程锁定了,然后还是安装失败之类的。
从dpkg删除mysql
dpkg -l | grep mysql
然后把列出来的全部删了
sudo dpkg -P xxx
中间删除某个包xxx时可能会遇到问题:
dpkg:处理软件包xxx(–purge)时出错:该软件包现在的状态极为不妥;建议您在卸载它之前再重新安装一次
如果遇到了3中描述的问题,执行下边两句,没遇到就跳过。
sudo dpkg --remove --force-remove-reinstreq xxx sudo dpkg --purge --force-remove-reinstreq xxx
重启。为了避免重启后mysql还是有可能安装失败的情况,可以先用一些小的软件来安装试试,比如sudo apt install sl,一个在你想打ls但是打成了sl的小火车。
dpkg相关命令
来源:https://blog.csdn.net/weixin_36171533/article/details/90378074
dpkg –info “软件包名” –列出软件包解包后的包名称.
dpkg -l –列出当前系统中所有的包.可以和参数less一起使用在分屏查看.
dpkg -l |grep -i “软件包名” –查看系统中与"软件包名"相关联的包.
dpkg -s 查询已安装的包的详细信息.
dpkg -L 查询系统中已安装的软件包所安装的位置.
dpkg -S 查询系统中某个文件属于哪个软件包.
dpkg -I 查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗).
dpkg -i 手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get -f install在解决信赖性这个问题.
dpkg -r 卸载软件包.不是完全的卸载,它的配置文件还存在.
dpkg -P 全部卸载(但是还是不能解决软件包的依赖性的问题)
dpkg -reconfigure 重新配置