ROS安装出错:ros-indigo-desktop-full :Unable to correct problems, you have held broken package

1问题

由于各种各样的原因,在我按照官方教程http://wiki.ros.org/cn/indigo/Installation/Ubuntu操作过程中,出现依赖项问题:ros-indigo-desktop-full :Unable to correct problems, you have held broken package,无法继续进行。

2  解决方 法

2.1 aptitude的介绍

aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是笔者总结的一些常用 aptitude命令,仅供参考。

命令 作用
aptitude update 更新可用的包列表
aptitude upgrade 升级可用的包
aptitude dist-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件

当然,你也可以在文本界面模式中使用 aptitude。

aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是笔者总结的一些常用 aptitude命令,仅供参考。
命令 作用
aptitude update 更新可用的包列表
aptitude upgrade 升级可用的包
aptitude dist-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件

当然,你也可以在文本界面模式中使用 aptitude。

2.2 实际操作

sudo aptitude install ros-indigo-desktop-full

在ROS安装的过程中,当运行sudo apt-get install ros-***后,我们常常会遇到类似下面的错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:


The following packages have unmet dependencies:
 ros-***-desktop-full : Depends: ros-***-mobile but it is not going to be installed
                          Depends: ros-***-perception but it is not going to be installed
                          Depends: ros-***-simulators but it is not going to be installed
E: Unable to correct problems, you have held broken packages.


解决方法主要有以下两种:

1. 每次安装第一个缺失的依赖包

    如: sudo apt-get install ros-***-mobile ,运行该命令后可能会出现新的依赖包缺失问题,再次安装新的第一个缺失的依赖包。

    如此这般,直到安装好所有的依赖包,再次执行命令

    sudo apt-get install ros-***;

2. 在第一种方法解决不了的情况下使用:

    sudo aptitude install ros-*** 代替  sudo apt-get install ros-***;

    对于前面的提示Accept this solution? [Y/n/q/?],选择n

    直到出现类似这样的提示时,选择Y:

    The following actions will resolve these dependencies:
     Install the following packages:           
     1)     ps-engine [5.0.3.3-3+precise1 (precise)]
     Accept this solution? [Y/n/q/?]


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"E: Unable to locate package ros-indigo-desktop-full"是一个常见的错误消息,通常出现在使用apt-get或apt命令安装软件包。这个错误消息表示apt无法找到名为"ros-indigo-desktop-full"的软件。 有几种可能的原因导致这错误消息出现: 1. 软件源配置错误:请确保您的软件配置正确。可以通过编辑/etc/apt/sources.list文件检查和修改软件源配置。确保您添加了正确的ROS软件源2. 软件包名称错误:请确保输入的软件包名称正确。在这种情况下,"ros-indigo-desktop-full"是 Indigo版本的完整桌面安装包的名称。如果您使用的是其他的ROS,或者需要其他特定的软件包,请确保您输入了正确名称。 3. 网络连接问题:如果您的网络连接不稳定或无法访问ROS软件源,也可能导致无法找到软件包。请确保您的网络连接正常,并尝试重新运行apt-get或apt命令。 解决这个问题的方法有几种: 1. 更新软件源:首先,您可以尝试更新软件源并再次运行安装命令。可以使用以下命令更新软件源: ``` sudo apt-get update ``` 然后再次尝试安装ROS软件包。 2. 检查软件源配置:检查/etc/apt/sources.list文件中的软件源配置是否正确。确保您添加了正确的ROS软件源。您可以参考ROS官方文档或ROS社区网站获取正确的软件源配置信息。 3. 检查网络连接:确保您的网络连接正常,并且可以访问ROS软件源。您可以尝试使用ping命令测试网络连接是否正常。 如果上述方法都无法解决问题,您可以尝试在ROS社区论坛或ROS官方文档中寻求帮助,以获取更详细的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值