在 ubuntu 20.04 LTS 上安装 ROS2 执行 rosdep update 命令时出现的问题的解决办法
在 ubuntu 20.04 LTS 上安裝 ROS2 執(zhí)行 rosdep update 命令時出現(xiàn)的問題的解決辦法
1、sudo rosdep init
在執(zhí)行 sudo rosdep init 命令的時候,會出現(xiàn)如下錯誤:
-
Certificate verification failed: The certificate is NOT trusted.
解決辦法:安裝 ca-certificates
apt install ca-certificates-
無法訪問 raw.githubusercontent.com
該命令的作用是從目標(biāo)網(wǎng)址中下載 20-default.list 文件。
第一種方法,使用手機(jī)熱點,重新輸入命令:sudo rosdep init
第二種方法:
- 建立一個文件夾
- 然后寫入文件
將下面的內(nèi)容復(fù)制到創(chuàng)建的文件中:
# os-specific listings first yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx# generic yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead保存完畢,執(zhí)行 rosdep update 命令。
具體的可以參考 古月居 的文章。
2、rosdep update
由于近期國內(nèi) Github Raw 的可用 IP 越來越少,通過修改 hosts 文件解決 rosdep update 超時問題的方法已經(jīng)不太好用,本文通過修改 rosdep 源碼中下載資源的函數(shù)來解決這一問題。
網(wǎng)站 https://ghproxy.com/ 支持 github 的資源代理,非常好用,我們將用此代理加速rosdep 對 Github Raw 的訪問,進(jìn)而解決 rosdep update 超時問題。
首先定位 rosdep 資源下載函數(shù)。從報錯信息中得知,該函數(shù)名為download_rosdep_data,位于 /usr/lib/python3/dist-packages/rosdep2/sources_list.py。我們修改這一函數(shù),添加:
url = "https://ghproxy.com/" + url應(yīng)用 ghproxy 的代理服務(wù)。
用同樣的方法修改 /usr/lib/python3/dist-packages/rosdistro/__init__.py 里面的DEFAULT_INDEX_URL。即將 DEFAULT_INDEX_URL 進(jìn)行如下替換:
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'除此處外,下述文件中也含有 github 地址,分別是:
/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py # 36行 /usr/lib/python3/dist-packages/rosdep2/sources_list.py # 72行 /usr/lib/python3/dist-packages/rosdep2/rep3.py # 39行 /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py # 68、119行 /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py # 204 行下面添加 gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url- /usr/lib/python3/dist-packages/rosdep2/sources_list.py
- /usr/lib/python3/dist-packages/rosdep2/rep3.py
- /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py
- /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
均可通過在地址前添加 https://ghproxy.com/ 前綴來應(yīng)用代理服務(wù)。
完成以上更改之后,再次嘗試執(zhí)行 rosdep update。
第二種方法:
修改 /etc/ros/rosdep/sources.list.d/20-default.list 文件:
在所有 https://raw.githubusercontent.com 前加上 https://ghproxy.com/,如下所示:
修改 /usr/lib/python3/dist-packages/rosdistro/__init__.py 文件:
在 DEFAULT_INDEX_URL 前面加上 https://ghproxy.com/,修改完成如下所示:
總結(jié)
以上是生活随笔為你收集整理的在 ubuntu 20.04 LTS 上安装 ROS2 执行 rosdep update 命令时出现的问题的解决办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Installing ROS 2 on
- 下一篇: Keil uVision5 之 C51