ubuntu18.04安装ros时遇到的问题
输入指令:sudo apt install ros-melodic-desktop-full后报错:
下列软件包有未满足的依赖关系:
ros-melodic-desktop-full : 依赖: ros-melodic-desktop 但是它将不会被安装
依赖: ros-melodic-perception 但是它将不会被安装
依赖: ros-melodic-simulators 但是它将不会被安装
依赖: ros-melodic-urdf-sim-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决办法:
将所提到的四个依赖软件包进行aptitude安装:
sudo aptitude install ros-melodic-desktop ros-melodic-perception ros-melodic-simulators ros-melodic-urdf-sim-tutorial
会出现一个未满足依赖关系的软件包libgpgme11,但是提示我这个软件包已经安装了,就是版本太高不匹配才报错
是否接受该解决方案?选择n,会提示降级软件包,我这里降级了两次,就算选了两次n
最后接受方案,开始安装:
最后安装好4个依赖包后,就可以安装ros-melodic了:
安装ros-melodic
sudo apt install ros-melodic-desktop-full
完成
最后总结一下:自己看了看apt-get和aptitude的区别,看到了:aptitude 解决依赖关系比 apt-get 更智能. 有时用 apt-get 安装软件时会出现 "XXX 需要 XXXX, 但 XXX已安装" 这类的错误. 这通常是因为某些软件包过新造成的. 可以进行降级。此时使用 aptitude, aptitude 会发现问题并给出几个解决方案,我们只需接受符合心意的方案就可以了.
参考:通过aptitude降级包解决依赖问题(E:无法修正错误,因为您要求某些软件包保持现状)_jazz2013的专栏-优快云博客