今天被要求解决一个树莓派无法正常安装 MySQL 的问题。以下是解决过程记录。
我在 Mac 上利用 SSH 连接到树莓派,执行 sudo apt-get install mysql-server mysql-client 后出现以下错误。
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
下列软件包有未满足的依赖关系:
mysql-client :以来:mysql-client-5.5 但是它将不会被安装
mysql-server :以来:mysql-server-5.5 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
截图如下。
我被告知安装 mysql-client-5.5 和 mysql-server-5.5 还会出现别的依赖问题,继续安装提示的包也不能解决问题,感觉是个无底洞。所以我又寻找了别的方法。
根据一篇博客的提示(找不到链接了),可以利用 aptitude 下载 MySQL。执行以下操作。
sudo apt-get update
sudo apt-get install aptitude
sudo aptitude install mysql-server mysql-client
结束后,没有出现之前的错误,但是当我输入 mysql 后依然显示找不到指令。显然,这个方式不适用于我这种情况。(不过大家还是可以试一试这个方法,也许可以解决问题。)
在搜寻过很多文章后,我感觉问题可能出在源上。当时这个树莓派已经被换过源了,换成了阿里云源。我尝试着换成另一个源。找到了一个详细的换源文章(https://www.jianshu.com/p/768f0181672b),换成了中科大的软件源和系统源。根据提示,执行下列操作。
#备份源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
#修改软件更新源
sudo nano /etc/apt/sources.list
进入文件后将之前信息注释,然后添加第一行 deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi 。按 Ctrl + O 保存,按回车,再按 Ctrl + X 退出编辑。
#修改系统更新源
sudo nano /etc/apt/sources.list.d/raspi.list
进入文件后将之前信息注释,然后添加第一行 deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui 。按 Ctrl + O 保存,按回车,再按 Ctrl + X 退出编辑。
然后运行:
#同步更新源
sudo apt-get update
#更新升级以安装软件包
sudo apt-get upgrade
完成以上操作后,就可以再次执行 sudo apt-get install mysql-server mysql-client 完成 MySQL 的安装了。