在 Ubuntu 系統下將 ROS2 的 apt 存儲庫添加到系統中並授權 GPG 密鑰,是安裝 ROS2 的關鍵第一步。下面我為你梳理了詳細步驟和注意事項。

添加存儲庫與授權密鑰

1.確保語言環境支持UTF-8:首先,請確保你的系統語言環境支持 UTF-8。你可以通過以下命令檢查和設置

locale  # 檢查當前設置
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

對於大多數已經在使用圖形化界面的 Ubuntu 系統,這一步通常可以跳過,但在最小化系統(如 Docker 容器)中尤為重要

2.啓用 Universe 存儲庫:ROS2 的軟件包位於 Ubuntu 的 universe存儲庫中,你需要先確保它已被啓用

sudo apt install software-properties-common
sudo add-apt-repository universe

3.添加 ROS2 的 GPG 密鑰:此密鑰用於驗證從存儲庫下載的軟件包的完整性。使用以下命令添加官方密鑰

sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

注意:由於網絡原因,執行上述 curl命令時可能會遇到連接失敗或域名無法解析的錯誤。如果遇到問題,可以嘗試以下方法:

方法一(修改 hosts):使用 nslookup查詢 raw.githubusercontent.com的當前 IP 地址,然後將其添加到 /etc/hosts文件中。

方法二(手動下載密鑰):如果命令始終失敗,通過瀏覽器(或能正常訪問的機器)手動下載密鑰文件(https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc),然後將其複製到系統中,並使用 sudo apt-key add ros.asc命令添加。或者,直接將下載的文件移動到目標位置:sudo mv ros.asc /usr/share/keyrings/ros-archive-keyring.gpg

4.將 ROS2 存儲庫添加到源列表:密鑰添加成功後,就可以將 ROS2 的存儲庫地址添加到系統的軟件源列表中了

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

這個命令會自動檢測你的系統架構(如 amd64, arm64)和 Ubuntu 版本代號(如 Jammy for 22.04),並生成正確的存儲庫配置

後續步驟與驗證

完成以上步驟後,建議更新軟件包列表以確保系統識別了新添加的 ROS2 存儲庫

sudo apt update

如果 apt update過程沒有報告 GPG 錯誤,通常意味着存儲庫已成功添加。之後,你就可以安裝 ROS2 包了,例如桌面完整版 ros-<distro>-desktop(將 <distro>替換為你所需的 ROS2 發行版,如 humble