不知道 roslaunch 出了什么问题

不知道 roslaunch 出了什么问题

我确信我已经在 wsl 上正确安装了 ROS(发行版是 melodic),并且我知道我已经按照每个步骤正确下载了完整软件包,但使用命令行 roslaunch 或任何与 roslaunch 相关的东西只会让我回到这个消息

Command 'roslaunch' not found, but can be installed with:

sudo apt install python-roslaunch

如果我进入命令行

sudo apt install python-roslaunch

这会引导我

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:
 python-roslaunch : Depends: python-roslib but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

安装 python-roslib 会导致另一个与上述类似的错误。我什么都试过了。从重新安装所有内容到触碰 rootf 目录中找到的文件,但到目前为止都不起作用。任何至少能​​帮助我找出问题所在的东西都会很感激。

答案1

$ sudo apt-get update 
$ sudo apt-get upgrade

$ sudo apt-get update --fix-missing

$ sudo apt-get autoclean

$ apt-get clear cache

答案2

这些是一些快速简便的修复you have held broken packages错误的方法。

  • 打开 sources.list 文件/etc/apt/sources.list,检查是否存在与您当前使用的 Ubuntu 版本不同的 Ubuntu 版本的软件源。如果您在 sources.list 中发现任何不正确的版本行,请使用 打开 sources.list 文件,sudoedit /etc/apt/sources.list在 sources.list 中用一个字符注释掉不正确的行#,保存 sources.list 文件,然后运行sudo apt update以更新可用软件包列表。

  • 选择修复损坏的软件包Synaptic 包管理器中的选项。运行以下命令安装 Synaptic。

      sudo apt update  
      sudo apt upgrade   
      sudo apt install synaptic  
    

    打开 Synaptic 并在 Synaptic 中选择编辑->修复损坏的软件包然后重复编辑->修复损坏的软件包第二次。

    在 Synaptic 的左侧窗格中单击自定义过滤器按钮,如下图所示,鼠标光标标记。从左上角的列表中选择破碎的。中心窗格将列出任何仍需修复的损坏包。

在 Synaptic 中显示损坏的软件包

Select the broken packages one at a time. Select a broken package, and then open the terminal and run <code>apt policy <b>&lt;package-name&gt;</b></code>. The results of this command will tell you if that broken package was installed from the default Ubuntu repositories or from some other source. If the broken package was installed from some other source, maybe that package can be removed along with its software source and replaced by a different version of the same package from the default Ubuntu repositories. Usually this means fixing a broken package by downgrading that package to an older version.
  • 如果您收到此错误消息:

      Try 'apt-get -f install' with no packages (or specify a solution)  
    

    运行以下命令:

      sudo apt update  
      sudo apt upgrade   
      sudo apt-get -f install   
    
  • 手动移除破损的包装。

  1. 查找您的包裹/var/lib/dpkg/info

         ls -l /var/lib/dpkg/info | grep <package>
    
  2. 将包文件夹移动到另一个位置。

         cd /tmp && sudo mkdir new-package-location  
         sudo mv /var/lib/dpkg/info/<package>.* /tmp/new-package-location/    
    
  3. 运行以下命令:

         sudo dpkg --remove --force-remove-reinstreq <package>  
    

如果所有这些方法都不起作用,则损坏的软件包可能是由操作系统中嵌入太深的东西引起的,这些方法都无法对其产生任何影响。寻找这种深深嵌入的“东西”的第一个明显的地方是 中的软件源/etc/apt/sources.list。检查 sources.list 文件以查看它是否包含可能导致损坏软件包错误的任何非标准行。标准的 Ubuntu sources.list 文件看起来像 sources.list 文件这个答案

删除 sources.list 中可疑行的正确方法是将其前面加上一个字符,将其注释掉#。然后运行sudo apt update以刷新可用软件列表。

相关内容