无法在Ubuntu 20.04上安装ROS Melodic。

7
我正在尝试使用这些命令在Ubuntu 20.04上安装ROS Melodic。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full

但我遇到了这个错误。
E: Unable to locate package ros-melodic-desktop-full

我尝试安装不同版本和Kinetic Kame,但它们都给我相同的错误。

1
Ros Noetic是为Ubuntu 20制作的。Melodic适用于Ubuntu 18。 - Stigma
在回答时,Ros Noetic还没有发布;我不确定当时网站是否更新,或者我只是瞎了。但现在已经发布了! - JWCS
3个回答

12
在您的情况下,这是行不通的。Ubuntu 20没有ROS版本,而Melodic只能在Ubuntu 18上找到。如果可以选择,我建议安装Ubuntu 18。
ROS有一个严格的版本控制方案,与不同版本的Ubuntu相对应。 例如: Ubuntu 14(也称为Trusty)== ROS Indigo Ubuntu 16(也称为Xenial)== ROS Kinetic Ubuntu 18(也称为Bionic)== ROS Melodic Ubuntu 20(也称为Focal)== ROS Noetic Ubuntu 22(N/A)
(您仍然可以手动编译ROS,但出于理智考虑,我建议不要这样做。减少出错的可能性)
编辑!
我最初是在2020年5月22日写的,当时不知道ROS Noetic将在2020年5月23日发布。它应该有完整的官方apt支持,就像其他ROS版本一样。如果您坚持使用Ubuntu 20而不是18,通过apt安装Noetic现在是官方推荐的方法!

安装一个新版本(Noetic)到 Ubuntu 18.04 LTS 怎么样?只改变 lsb_release -sc 就可以了吗,还是会导致一些版本或包的问题? - M.K

3

替换第一个命令

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

by

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros-latest.list'

# or equivalently

sudo echo "deb http://packages.ros.org/ros/ubuntu bionic main" >> /etc/apt/sources.list.d/ros-latest.list

安装将开始。
这是因为lsb_release -sc命令向echo命令发送focal(Ubuntu 20.xx)参数,而应该是bionic(Ubuntu 18.xx),因此添加的存储库为noetic而不是melodic。

1
没错!如果你不是使用原版Ubuntu,而是像Linux Mint这样的Ubuntu衍生版,这一点尤其重要(我个人更喜欢Linux Mint)。在这种情况下,同样地,lsb_release -sc也会给出错误的名称,而你实际上需要的是xenial / bionic / focal - JWCS

2

根据JWCS和Himanshu Tanwar的答案,我想提醒一下,如果你正在使用Debian,在Debian 10(buster)上最好使用Noetic。在Buster上使用Melodic会遇到相同的困难。

可以通过类似于Himanshu Tanwar答案中的方法解决这个问题,即将“/etc/apt/sources.list.d/ros-latest.list”中的buster更改为bionic

我正在安装基于Buster的Raspbian ROS,并遇到了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接