解决ros-melodic-desktop-full(18.04)安装过程中未满足的依赖关系问题(注:也可以解决20.04noetic的)

自己安装火焰截图软件时使用sudo apt-get install flameshot时出现:

正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 您也许需要运行“apt --fix-broken install”来修正上面的错误。 下列软件包有未满足的依赖关系: python3-rosdep-modules : 依赖: python3-rospkg-modules (>= 1.4.0) 但是它将不会被安装 依赖: python3-catkin-pkg-modules (>= 0.4.0) 但是它将不会被安装 python3-rosdistro-modules : 依赖: python3-catkin-pkg-modules 但是它将不会被安装 依赖: python3-rospkg-modules 但是它将不会被安装 ros-noetic-rospack : 依赖: python3-catkin-pkg-modules 但是它将不会被安装 ros-noetic-rqt-gui : 依赖: python3-rospkg-modules 但是它将不会被安装 ros-noetic-rqt-robot-monitor : 依赖: python3-rospkg-modules 但是它将不会被安装 E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。

然后我根据提示采用修复命令: sudo apt --fix-broken install,但无效,依赖问题还是存在。

故采用:一、的方法1

一、

方法1: apt --fix-broken install -y

方法1无效时,使用方法2

方法2: sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk

sudo mkdir /var/lib/dpkg/info

sudo apt-get update

sudo apt-get install -f

---------------------------------------------------------------------------------------------------------------------------------二、另一种方法(采用aptitude包管理器)

1.sudo apt-get install aptitude

2.sudo aptitude install ros-noetic-desktop ros-noetic-perception ros-noetic-simulators ros-noetic-urdf-sim-tutorial

3.sudo apt --fix-broken install

因此我按顺序来执行命令:apt --fix-broken install -y,还是无效,出现dpkg前端锁报错:

 接着采用方法2:

方法2: sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk

sudo mkdir /var/lib/dpkg/info

sudo apt-get update

sudo apt-get install -f

便可以顺利安装火焰截图软件了(即sudo apt-get install flameshot)

二、下面内容是解决Ubuntu20.04 ROS Noetic的启发:

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 (此方法可以完全替代noetic的安装,只需把melodic替换为noetic即可)

完成

最后总结一下:自己看了看apt-get和aptitude的区别,看到了:aptitude 解决依赖关系比 apt-get 更智能. 有时用 apt-get 安装软件时会出现 "XXX 需要 XXXX, 但 XXX已安装" 这类的错误. 这通常是因为某些软件包过新造成的. 可以进行降级。此时使用 aptitude, aptitude 会发现问题并给出几个解决方案,我们只需接受符合心意的方案就可以了。

参考:通过aptitude降级包解决依赖问题(E:无法修正错误,因为您要求某些软件包保持现状)_jazz2013的专栏-CSDN博客

内容为:

通过aptitude降级包解决依赖问题(E:无法修正错误,因为您要求某些软件包保持现状)

参考文章:

(1)通过aptitude降级包解决依赖问题(E:无法修正错误,因为您要求某些软件包保持现状)

(2)https://www.cnblogs.com/bowen404/p/11970599.html


备忘一下。 

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值