“依赖: ros-kinetic-perception 但是它将不会被安装” 等报错

前言

水平不足,没有证实下面这个方法是一定可行的,仅作参考。

问题

最近在ubuntu16.04上安装ROS,版本kinetic,按官网教程操作,执行到:
sudo apt-get install ros-kinetic-desktop-full
遇到了报错:

下列软件包有未满足的依赖关系:
 ros-kinetic-desktop-full : 依赖: ros-kinetic-desktop 但是它将不会被安装
                            依赖: ros-kinetic-perception 但是它将不会被安装
                            依赖: ros-kinetic-simulators 但是它将不会被安装
                            依赖: ros-kinetic-urdf-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

事实上,在执行sudo apt-get update时也出现了warning。

解决

通过网上查阅前人的解决方案,发现问题大概是软件源不对,ROS官网提供了10+个镜像可以替换,在中国的也有3个。操作可以参考这篇博客。
但是我尝试了数个软件源,都没有解决报错里第2、3个文件的依赖问题。最后尝试性地使用了:
sudo aptitude install ros-kinetic-desktop-full
反馈的方案:

下列动作将解决这些依赖关系:
      保持 下列软件包于其当前版本:          
1)      libcairo2-dev [未安装的]             
2)      libgtk2.0-dev [未安装的]             
3)      libpango1.0-dev [未安装的]           
4)      ros-kinetic-desktop-full [未安装的]  
5)      ros-kinetic-image-pipeline [未安装的]
6)      ros-kinetic-image-view [未安装的]    
7)      ros-kinetic-perception [未安装的]    
8)      ros-kinetic-simulators [未安装的]    
9)      ros-kinetic-stage [未安装的]         
10)     ros-kinetic-stage-ros [未安装的]

上面省略了将被安装的包(太多了而且基本不需要看懂)。
同意这个方案后继续按安装教程(这里我参考了一篇中文翻译,和官网是一回事)走,最后运行roscore测试没有异常,小海龟程序 可以正常运行。但是
我的理解,按照上文提示,保持当前版本的意思是保持不安装,这样一开始报错的第2、3个依赖依旧没装,因此以后的使用也许会出问题,待观察。

你可能感兴趣的:(ubuntu)