Ubuntu20.04安装ROS Neotic修复依赖问题过程记录

出现的问题:

下列软件包有未满足的依赖关系:
ros-noetic-desktop-full : 依赖: ros-noetic-desktop 但是它将不会被安装

    依赖: ros-noetic-perception 但是它将不会被安装

    依赖: ros-noetic-simulators 但是它将不会被安装

    依赖: ros-noetic-urdf-sim-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

即使再卸载重装也没用,所以用了以下方法修复:

1、将ubuntu更换为国内源。

2、命令行输入aptitude,用自适应安装来解决:

sudo apt-get install aptitude  
sudo aptitude install ros-noetic-desktop
sudo aptitude install ros-noetic-perception
sudo aptitude install ros-noetic-simulator
...

结果还是出现各种问题。

>下列软件包有未满足的依赖关系:
 ros-noetic-image-view : 依赖: libgtk-3-dev 但是它将不会被安装

    gcc-10-base:i386{a} gir1.2-harfbuzz-0.0{a} libatk-bridge2.0-dev{ab} libatk1.0-dev{a} libatspi2.0-dev{a} libblkid-dev{a} libblkid1:i386{a} libc6:i386{a} libcairo-script-interpreter2{a} 

    libcairo2-dev{a} libcrypt1:i386{a} libdatrie-dev{a} libdbus-1-dev{ab} libdrm-dev{a} libegl1-mesa-dev{a} libelf1:i386{a} libepoxy-dev{a} libffi-dev{a} libffi7:i386{a} libfribidi-dev{a} 

    libgcc-s1:i386{a} libgdk-pixbuf2.0-dev{a} libglib2.0-0:i386{ab} libglib2.0-bin:i386{ab} libglib2.0-dev{ab} libglib2.0-dev-bin{a} libgraphite2-dev{a} libgtk-3-dev{b} libharfbuzz-dev{a} 

    libharfbuzz-gobject0{a} libidn2-0:i386{a} libmount-dev{a} libmount1:i386{a} libpango1.0-dev{a} libpcre2-8-0:i386{a} libpcre2-dev{a} libpcre2-posix2{a} libpcre3:i386{a} libpixman-1-dev{a} 

    libselinux1:i386{a} libselinux1-dev{a} libsepol1-dev{a} libthai-dev{a} libunistring2:i386{a} libwayland-bin{a} libwayland-dev{a} libx11-xcb-dev{a} libxcb-dri2-0-dev{a} libxcb-dri3-dev{a} 

    libxcb-glx0-dev{a} libxcb-present-dev{a} libxcb-randr0-dev{a} libxcb-render0-dev{a} libxcb-shape0-dev{a} libxcb-shm0-dev{a} libxcb-sync-dev{a} libxcb-xfixes0-dev{a} libxcomposite-dev{a} 

    libxcursor-dev{a} libxdamage-dev{a} libxfixes-dev{a} libxi-dev{a} libxinerama-dev{a} libxkbcommon-dev{a} libxrandr-dev{a} libxshmfence-dev{a} libxtst-dev{a} libxxf86vm-dev{a} mesa-common-dev{a} 

    pango1.0-tools{a} wayland-protocols{a} x11proto-input-dev{a} x11proto-randr-dev{a} x11proto-record-dev{a} x11proto-xf86vidmode-dev{a} x11proto-xinerama-dev{a} zlib1g:i386{a} 
0 个软件包被升级,新安装 77 个,0 个将被删除, 同时 1 个将不升级。需要获取 13.6 MB 的存档。解包后将要使用 79.9 MB。aptitude 未能找到这些依赖的解决方法。您可以自己手动解决或输入“n”来退出。下列软件包存在未满足的依赖关系:
libgtk-3-dev : 依赖: gir1.2-gtk-3.0 (= 3.24.18-1ubuntu1) 但是 3.24.20-0ubuntu1 已安装
依赖: libgtk-3-0 (= 3.24.18-1ubuntu1) 但是 3.24.20-0ubuntu1 已安装
libglib2.0-bin : 冲突: libglib2.0-bin:i386 但是 2.64.2-1~fakesync1 将被安装
libglib2.0-bin:i386 : 冲突: libglib2.0-bin 但是 2.64.3-1~ubuntu20.04.1 已安装
libdbus-1-dev : 依赖: libdbus-1-3 (= 1.12.16-2ubuntu2) 但是 1.12.16-2ubuntu2.1 已安装
libglib2.0-dev : 依赖: libglib2.0-0 (= 2.64.2-1~fakesync1) 但是 2.64.3-1~ubuntu20.04.1 已安装
libatk-bridge2.0-dev : 依赖: libatk-bridge2.0-0 (= 2.34.1-3) 但是 2.34.2-0ubuntu2~20.04.1 已安装
libglib2.0-0 : 破坏: libglib2.0-0:i386 (!= 2.64.3-1~ubuntu20.04.1) 但是 2.64.2-1~fakesync1 将被安装
libglib2.0-0:i386 : 破坏: libglib2.0-0 (!= 2.64.2-1~fakesync1) 但是 2.64.3-1~ubuntu20.04.1 已安装

即使我最终成功安装上ROS,但是失去了桌面还有什么意义……头疼。

总之,千万不要再用aptitude解决了!无法解决!对小白来说真的不好用。

以下成功解决的过程记录:

考虑到别人都没出现我的问题,可能是ubuntu20.04自动更新python、gnome、libg等库导致的。

首先重装系统,并且在装好后不做任何更新,系统换为阿里源,安装ROS使用ustc源:

jillian@jillian-VirtualBox:~$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ lsb_release -cs main" > /etc/apt/sources.list.d/ros-latest.list'
jillian@jillian-VirtualBox:~$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
Executing: /tmp/apt-key-gpghome.PZ8h0p2dmL/gpg.1.sh --keyserver 
hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
gpg: 密钥 F42ED6FBAB17C654:公钥 “Open Robotics info@osrfoundation.org” 已导入
gpg: 处理的总数:1
gpg: 已导入:1jillian@jillian-VirtualBox:~$ sudo apt update命中:1 http://mirrors.aliyun.com/ubuntu focal InRelease命中:2 
http://mirrors.aliyun.com/ubuntu focal-updates InRelease命中:3 
http://mirrors.aliyun.com/ubuntu focal-backports InRelease忽略:4 
http://mirrors.ustc.edu.cn/ros/ubuntu focal InRelease命中:5 
http://mirrors.aliyun.com/ubuntu focal-security InRelease错误:6 
http://mirrors.ustc.edu.cn/ros/ubuntu focal Release
正在读取软件包列表... 完成
E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu focal Release” 没有 Release 文件。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
jillian@jillian-VirtualBox:~$ sudo apt install ros-noetic-desktop-full
正在读取软件包列表... 完成
正在分析软件包的依赖关系树正在读取状态信息... 完成
E: 无法定位软件包 ros-noetic-desktop-full

无法安装,于是勾选focal-proposed选项:

(勾选这个选项以后,可安装的核心组件会变多,然而继续不更新)

FOCAL-ROS-INSTALL

依然无法安装: E: 无法定位软件包 ros-noetic-desktop-full

此时可以软件更新器中可以安装的更新分为 【安全更新】和【其他更新】,后者是勾选了focal选项后多出来的。

firefox和输入法也不要管,这时候只选择【安全更新】中的Ubuntu核心组件。

ROS-INSTALL-1

ROS-INSTALL-2

安装完毕后,sudo apt update。

但还是出现错误, 默认禁用该源。

直接重启。然后系统阿里云源换为华为源,没变化。

最后把ROS的源从中科大换成清华,这次有变化了。

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ lsb_release -cs main" > /etc/apt/sources.list.d/ros-latest.list'

jillian@jillian-VirtualBox:~$ sudo apt update
忽略:1 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal InRelease
获取:2 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal Release [3.788 B]
命中:3 http://mirrors.huaweicloud.com/repository/ubuntu focal InRelease
获取:4 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal Release.gpg [819 B]
命中:5 http://mirrors.huaweicloud.com/repository/ubuntu focal-updates InRelease
命中:6 http://mirrors.huaweicloud.com/repository/ubuntu focal-backports InRelease
获取:7 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal/main i386 Packages [15,4 kB]
命中:8 http://mirrors.huaweicloud.com/repository/ubuntu focal-security InRelease
获取:9 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal/main amd64 Packages [276 kB]
命中:10 http://mirrors.huaweicloud.com/repository/ubuntu focal-proposed InRelease
已下载 296 kB,耗时 1秒 (315 kB/s)                     
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有 90 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。

到这里就可以正常安装:(不进行升级)

jillian@jillian-VirtualBox:~$ sudo apt install ros-noetic-desktop-full

这样中间没有任何错误产生,成功安装。

ROS-END-NOETIC

  • 10
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
### 回答1: 这是一个关于ROS Noetic软件包依赖关系的问题。其中,下列软件包的依赖关系尚不足够满足要求,无法安装ros-noetic-desktop-full: 依赖ros-noetic-desktop,但它不会安装依赖ros-noetic-perception,但它不会安装依赖ros-noetic-simulators,但它不会安装依赖ros-noetic-urdf-sim-tu,但它不会安装。 ### 回答2: 这个错误提示是说明在安装 ros-noetic-desktop-full 软件包时,发现它需要依赖一些其他的软件包,但是这些软件包未被安装。其中,ros-noetic-desktopros-noetic-perception、ros-noetic-simulators 和 ros-noetic-urdf-sim-tu 是四个未满足依赖关系的软件包。 这个错误提示一般是由于软件源的问题所导致的。在安装软件包时,系统会从软件源中查找该软件包以及它所需的依赖关系。如果软件源中不存在某个软件包的依赖关系,则会提示这个错误信息。 要解决这个问题,可以尝试以下几个方法: 1. 更新软件源:可通过修改软件源配置文件或使用软件源管理工具来更新软件源。更新后再次尝试安装软件包,看是否能够解决依赖关系问题。 2. 手动安装依赖关系:如果更新软件源后仍然无法解决依赖关系问题,可以尝试手动安装依赖关系。按照依赖关系的提示,逐个安装这四个软件包。安装完成后再次尝试安装 ros-noetic-desktop-full 软件包,看是否能够正常安装。 3. 使用 aptitude 命令安装:aptitude 命令可以自动处理依赖关系,可能会更好地解决这个问题。可以通过运行以下命令安装 ros-noetic-desktop-full 软件包: sudo aptitude install ros-noetic-desktop-full 以上是我的回答,希望能对你有所帮助。如果你还有其他问题,请随时回复。 ### 回答3: 这个问题意味着在安装 ros-noetic-desktop-full 软件包时,计算机无法满足所有需要的依赖关系。这些依赖关系包括 ros-noetic-desktopros-noetic-perception、ros-noetic-simulators 和 ros-noetic-urdf-sim-tu。 在解决这个问题之前,我们需要了解什么是依赖关系。在软件工程中,依赖关系指的是一个软件包需要另一个软件包才能正常运行的情况。例如,在 ROS 中,ros-noetic-desktop-full 需要依赖其他的软件包才能提供完整的功能。 为了解决这个问题,我们可以使用以下方法: 1. 更新软件包源列表。我们可以更新软件包源列表,这有助于计算机查找所需的软件包。在 Ubuntu 系统中,我们可以使用以下命令更新软件包源列表:sudo apt-get update。 2. 安装依赖关系。我们可以尝试单独安装缺失的依赖关系。在 ROS 中,我们可以使用以下命令安装缺失的软件包:sudo apt-get install ros-noetic-desktop ros-noetic-perception ros-noetic-simulators ros-noetic-urdf-sim-tu。 3. 检查软件包仓库。某些情况下,软件包源可能已经过时或不再受支持。我们可以检查软件包仓库,查看软件包是否可用。在 Ubuntu 系统中,我们可以使用以下命令查看软件包仓库:apt-cache search ros-noetic-desktop-full。 总之,无法满足依赖关系的问题是常见的,在解决这个问题之前,我们需要了解依赖关系的概念,并掌握一些解决方法。在 ROS 中,我们可以使用更新软件包源列表、安装依赖关系和检查软件包仓库等方法解决问题
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

canmoumou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值