ROS2——foxy apt打包离线安装deb包
需要从A设备复制ROS2环境到B设备,且B设备有可能没网络,所以选择制作离线资源包
1. 本机安装指令
本机环境ubuntu20.04,安装ros2-foxy版本,直接输入以下指令,基本不会遇到问题
这里安装的是ros-base版本,不带GUI页面,因为是嵌入式环境,追求轻量,如果需要全量的可以安装ros-foxy-desktop版本
sudo apt update && sudo apt install curl gnupg2 -y
sudo curl -sSL https://gitee.com/tyx6/rosdistro/raw/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
sudo apt install ros-foxy-ros-base
sudo apt install ros-foxy-demo-nodes-cpp
2. 打包环境为离线包
- ros-foxy-ros-base打包
sudo apt download $(apt-rdepends ros-foxy-ros-base | grep -v "^ " | grep -v ‘debconf-2.0’ | grep -v ‘libblas.so.3’ | grep -v ‘libc-dev’ | grep -v ‘fonts-freefont’ | grep -v ‘python3-cffi-backend-api-max’ | grep -v ‘python3-cffi-backend-api-min’ | grep -v ‘liblapack.so.3’)
在这里会提示没有候选版本,无法进行选择,直接全部加入grep -v中
- ros-foxy-demo-nodes-cpp打包
sudo apt download $(apt-rdepends ros-foxy-demo-nodes-cpp | grep -v "^ " | grep -v ‘debconf-2.0’ | grep -v ‘libblas.so.3’ | grep -v ‘liblapack.so.3’ | grep -v ‘libc-dev’)
-
/usr/share/keyrings/ros-archive-keyring.gpg
cp /usr/share/keyrings/ros-archive-keyring.gpg ros-archive-keyring.gpg -
执行完毕可以看到许多deb包
-
编辑install.sh
#!/bin/bash
echo "begin install ros2 pack...."
sudo dpkg -i *.deb
echo "install all deb success...."
sudo apt-get install -f -y
echo "fix all depend success...."
cp ros-archive-keyring.gpg /usr/share/keyrings/ros-archive-keyring.gpg
echo "sync ros key success...."
cp fastdds /opt/ros/foxy/. -rf
echo "sync fastdds success"
echo "end install ros2 pack...."
-
将全部的资源包打包为压缩包传到需要离线安装的机器上,bash install.sh运行,直接开始安装
可以看到在安装这些deb包,并且安装成功 -
测试功能
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker &
ros2 run demo_nodes_cpp listener &