背景:当安装mysql— sudo apt-get install mysql-server时,出现错误
Setting up mysql-server-5.7 (5.7.25-0ubuntu0.18.04.2) ...
update-alternatives: error: alternative path /etc/mysql/mysql.cnf doesn't exist
dpkg: error processing package mysql-server-5.7 (--configure):
installed mysql-server-5.7 package post-installation script subprocess returned error exit status 2
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-server-5.7; however:
Package mysql-server-5.7 is not configured yet.
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
解决:
$ sudo apt-get autoclean
$ sudo apt-get update
$ sudo apt-get upgrade
update-initramfs: Generating /boot/initrd.img-4.15.0-45-generic
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
$ cd /var/lib/dpkg
$ sudo mv info info.bak
$ sudo mkdir info
$ sudo apt-get upgrade
The following packages have been kept back:
libcogl20 libgl1-mesa-dri libwayland-egl1-mesa libxatracker2 m
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up mysql-server-5.7 (5.7.25-0ubuntu0.18.04.2) ...
Setting up mysql-server (5.7.25-0ubuntu0.18.04.2) ...
W: APT had planned for dpkg to do more than it reported back (3 vs 7).
Affected packages: mysql-server-5.7:amd64
备注:
apt-get remove 会删除软件包而保留软件的配置文件
apt-get purge 会同时清除软件包和软件的配置文件
所以当你想彻底地删除软件包的时候,用 apt-get purge 吧
备注:
卸载mysql
$ ps -ef|grep mysqld
root 7947 940 0 09:27 ? 00:00:00 sudo bin/mysqld_safe --user=mysql
root 7950 7947 0 09:27 ? 00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql 8195 7950 0 09:27 ? 00:03:26 /usr/local/mysql-8.0.15/bin/mysqld --basedir=/usr/local/mysql-8.0.15 --datadir=/home/ocena/workspace/mysql/mysql-data --plugin-dir=/usr/local/mysql-8.0.15/lib/plugin --user=mysql --log-error=error.log --pid-file=star.pid --port=3306
ocena 13793 13783 0 15:57 pts/7 00:00:00 grep --color=auto mysqld
$ ps -ef|grep mysqld -- 一个好的
root 5250 1778 0 04:01 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/home/ocean/workspace/mysql/mysql-data --pid-file=/home/ocean/workspace/mysql/mysql-data/ubuntu.pid
mysql 5486 5250 0 04:01 pts/0 00:00:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/home/ocean/workspace/mysql/mysql-data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=error.log --pid-file=/home/ocean/workspace/mysql/mysql-data/ubuntu.pid --port=3306
ocean 5934 2433 0 04:14 pts/0 00:00:00 grep --color=auto mysqld
$ dpkg --list|grep mysql -- 查看依赖
$ sudo apt purge mysql-*
$ dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P -- 清除残留数据
$ dpkg --list|grep mysql
$ sudo find / -name mysql -- 查看含有mysql的服务的路径
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
find: ‘/run/user/1000/gvfs’: Permission denied
/run/lock/subsys/mysql
/snap/core/6405/etc/apparmor.d/abstractions/mysql
/snap/core/6405/usr/share/bash-completion/completions/mysql
/snap/core/6259/etc/apparmor.d/abstractions/mysql
/snap/core/6259/usr/share/bash-completion/completions/mysql
/snap/core/6130/etc/apparmor.d/abstractions/mysql
/snap/core/6130/usr/share/bash-completion/completions/mysql
/usr/share/bash-completion/completions/mysql
/usr/share/mysql
/usr/bin/mysql
/usr/lib/mysql
/usr/local/mysql-test/bin/mysql
/usr/local/mysql-test/include/mysql
/var/log/mysql
备注:
$ sudo find / -name mysql -- 一个完全新的ubuntu18.04中查找mysql服务
[sudo] password for ocean:
/etc/apparmor.d/abstractions/mysql
/usr/share/bash-completion/completions/mysql
find: ‘/run/user/1000/gvfs’: Permission denied
/snap/core/5662/etc/apparmor.d/abstractions/mysql
/snap/core/5662/usr/share/bash-completion/completions/mysql
$ sudo find / -name mysql -- 一个使用mysql脚本安装mysql
[sudo] password for ocean:
/etc/mysql
/etc/apparmor.d/abstractions/mysql
/usr/local/mysql
/usr/local/mysql-8.0.15/include/mysql
/usr/local/mysql-8.0.15/bin/mysql
/usr/lib/python2.7/dist-packages/mysql
/usr/share/bash-completion/completions/mysql
/usr/bin/mysql
/home/ocean/workspace/mysql
/home/ocean/workspace/mysql/mysql-data/mysql
find: ‘/run/user/1000/gvfs’: Permission denied
/snap/core/5662/etc/apparmor.d/abstractions/mysql
/snap/core/5662/usr/share/bash-completion/completions/mysql
/snap/core/6405/etc/apparmor.d/abstractions/mysql
/snap/core/6405/usr/share/bash-completion/completions/mysql
mysql-data$ ls -- 一个使用mysql脚本安装mysql的mysql-data
arguse ca.pem ibdata1 mysql server-cert.pem undo_001
auto.cnf client-cert.pem ib_logfile0 mysql.ibd server-key.pem undo_002
binlog.000001 client-key.pem ib_logfile1 performance_schema slow.log
binlog.index error.log ibtmp1 private_key.pem sys
ca-key.pem ib_buffer_pool '#innodb_temp' public_key.pem ubuntu.pid
有关/snap/core/:
snap是包管理工具,它是Canonical的新包管理工具。Ubuntu软件中心使用的这个快照包管理——我知道这是因为我从来没有使用过快照工具,但是我有13个以上的快照文件夹。我想这就是/snap文件夹存在的原因。
工具名是snapd。因此,当您想要安装或卸载软件包时,应该使用如下命令:
sudo apt autoremove snapd
or
sudo apt autoremove --purge snapd
如果使用apt命令或synaptic包管理器安装软件包,则不需要snapd包。所以你可以移除它。
Ubuntu软件中心将使用“snapd”,这就是我所遇到的。但在删除了snapd之后,软件中心似乎不会使用snapd。
实际发现//snap/core/卸载不掉
参考:https://askubuntu.com/questions/1000177/is-the-snap-core-folder-needed
参考:https://blog.csdn.net/iehadoop/article/details/82961264