最近上中国大学慕课的机器人操作系统入门,安装时遇到多个坑,现在把解决方案共享给大家。
我的linux版本是16.04,安装的是kinetic
1. 第一个坑 :
错误报告如下:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
ros-kinetic-desktop-full : 依赖: ros-kinetic-desktop 但是它将不会被安装
依赖: ros-kinetic-perception 但是它将不会被安装
依赖: ros-kinetic-simulators 但是它将不会被安装
依赖: ros-kinetic-urdf-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
解决方法:
问题出现的原因是未开启更新,可以在Ubuntu 软件仓库(repositories) 的update中开启。
另外一个是在/etc/apt/sources.list中开启。
增加以下代码:
1. 第二个坑 :
W: 无法下载 http://ppa.launchpad.net/ubuntu- ... nary-amd64/Packages Hash 校验和不符
W: 无法下载 http://ppa.launchpad.net/ubuntu- ... inary-i386/Packages Hash 校验和不符
W: 无法下载 http://extras.ubuntu.com/ubuntu/dists/trusty/main/source/Sources Hash 校验和不符
W: 无法下载 http://archive.ubuntu.com/ubuntu ... inary-i386/Packages Hash 校验和不符
E: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
E: Some index files failed to download. They have been ignored, or old ones used instead.
解决方法:
把/etc/apt/sources.list里面的源都改为安全协议HTTPS,我使用的科大的源,先清除把/etc/apt/sources.list里面所有的东西,然后添加一下源,几乎能解决安装出错的各种原因。
deb [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial main restricted universe multiverse
deb [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial-security main restricted universe multiverse
deb [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial-updates main restricted universe multiverse
deb [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial-proposed main restricted universe multiverse
deb [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial-backports main restricted universe multiverse
deb-src [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial main restricted universe multiverse
deb-src [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial-security main restricted universe multiverse
deb-src [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial-updates main restricted universe multiverse
deb-src [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial-proposed main restricted universe multiverse
deb-src [https://mirrors.ustc.edu.cn/ubuntu/](https://mirrors.ustc.edu.cn/ubuntu/) xenial-backports main restricted universe multiverse
另外添加ROS的源时,也可以把其协议改为安全协议HTTPS。
sudo sh -c '. /etc/lsb-release && echo "deb https://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
每次执行完,执行更新源:
sudo apt-get update
1. 第三个坑 :开始不知道16.04的适配版本是kinetic,按照教程安装的是:
sudo apt-get install ros-jade-desktop-full。导致一直找不到软件包,出现以下错误。
E:Uable to locate package ros-jade-desktop-full
或者
E:不能定位软件包ros-jade-desktop-full
其实改为kinetic就可以了,使用以下命令:
sudo apt-get install ros-kinetic-desktop-full