前言

背景:iflyros机器人学院安装ROS

正文

hostname@ubuntu:~$ sudo apt-get update
忽略:1 http://mirrors.ustc.edu.cn/ros/ubuntu focal InRelease
命中:2 http://mirrors.nju.edu.cn/ubuntu focal InRelease
错误:3 http://mirrors.ustc.edu.cn/ros/ubuntu focal Release
  404  Not Found [IP: 202.141.176.110 80]
命中:4 http://mirrors.nju.edu.cn/ubuntu focal-updates InRelease
命中:5 http://mirrors.nju.edu.cn/ubuntu focal-backports InRelease
命中:6 http://mirrors.nju.edu.cn/ubuntu focal-security InRelease
正在读取软件包列表... 完成
E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu focal Release” 没有 Release 文件。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

错误原因:

  • 这里我们先介绍一下 sources.list 这个文件,它的存放目录是 /etc/apt/sources.list,是一个普通可编辑的文本文件,保存了ubuntu软件更新的源服务器的地址。和 sources.list 功能一样的是 /etc/apt/sources.list.d/.list ( 代表一个文件名,只能由字母、数字、下划线、英文句号组成)。sources.list.d 目录下的 *.list 文件为在单独文件中写入源的地址提供了一种方式,通常用来安装第三方的软件。这里我们需要把 ROS 的软件源地址添加到该文件夹中以确保安装的时候能找到准确的软件地址。
  • 更换update源时,先换了mirrors.ustc.edu.cn,但是没有更新完全,于是没有 Release 文件。
  • 之后,我又完全更换源为mirrors.nju.edu.cn
  • 而添加ROS源时输入的是:
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list

所以只要找到相应文件更改源即可

solution:

$ cd /etc/apt/sources.list.d
$ ls
$ sudo gedit ros-latest.list

before:

deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $(lsb_release -sc) main"

after:

deb http://mirrors.nju.edu.cn/ros/ubuntu/ $(lsb_release -sc) main"

save

$ sudo apt-get update
命中:1 http://mirrors.nju.edu.cn/ubuntu focal InRelease
命中:2 http://mirrors.nju.edu.cn/ubuntu focal-updates InRelease
命中:3 http://mirrors.nju.edu.cn/ubuntu focal-backports InRelease
命中:4 http://mirrors.nju.edu.cn/ubuntu focal-security InRelease
忽略:5 http://mirrors.nju.edu.cn/ros/ubuntu focal InRelease
命中:6 http://mirrors.nju.edu.cn/ros/ubuntu focal Release
正在读取软件包列表... 完成

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐