原因
前者的功能是进行初始化,在 /etc/ros/rosdep/sources.list.d 下创建一个名为20-default.list的文件,该文件中记录了很多链接。
后者的功能是根据20-default.list文件中的链接记录下载相关文件
在这两步中,都需要访问外网,下载20-default.list文件,并根据文件内容进行下载更新。
解决方案
如果我们手动添加并编写20-default.list文件,并手动修改该文件中的链接,将其指向在PC下载的ros源代码。这样在rosdep update的时候不用访问外网。
1.手动新建20-default.list
终端中:
sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo touch 20-default.list
2.在github下载ros的相关代码
链接: github.com/ros/rosdistro
下载之后解压并置于任意路径下(本文放置在桌面)
3.修改步骤1中的20-default.list文件
a.将rosdistro下的rosdep/sources.list.d/20-default.list中的内容复制到步骤1中的20-default.list中。
b.将步骤1中的20-default.list中的路径改为步骤2下载的rosdistro对应的文件路径。
如下图所示
4.修改 /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
文件,
指向本地的index-v4文件。
DEFAULT_INDEX_URL = 'file:///home/czq/Desktop/rosss/rosdistro/index-v4.yaml'
5.执行rosdep update
以上3步相当于执行了rosdep init,因此只用执行rosdep update
sudo rosdep update