openeuler 打包ros-comm

1.在树莓派上安装openeuler:

跟随这罗老师的tutorial配置好ros安装所需要的一些环境,

参考链接:https://gitee.com/yunxiangluo/ros_openeuler?_from=gitee_search

这篇博客目的是在openeuler源码编译ros-comm,然后在将rpm包进行打包,并且验证打包可执行程序

因此着重记录一下跟罗老师tutorial当中需要注意或者说不同的地方

2.下载ros-common源码

在你的workspace当中执行:

rosinstall_generator ros_comm --rosdistro melodic --deps --tar > melodic-ros_comm.rosinstall

这条指令的目的是将ros-comm当中所有的52个pkg的url链接写入到melodic-ros_comm.rosinstall文件当中,里面会包含各个pkg的版本号,后续自己打包的时候,也是需要版本号的

wstool init -j8 src melodic-ros_comm.rosinstall

这条指令的目的是,根据melodic-ros_common.rosinstall文件当中的下载链接,将ros-comm当中的源码下载到src目录当中,

安装依赖库:

pip install empy

然后通过

./src/catkin/bin/catkin_make

进行catkin_make,编译工作区间,用来验证工作区间,来编译各个pkg

在执行catkin_make的时候,可能会出现python-empty这个库,可以通过pip install em来安装

3.将catkin源码打包rpm

构建源码打包的工程

soueces里面存放的是tar.gz结尾的压缩包,例如catkin-0.7.26.tar.gz

将文件夹进行压缩的命令:

tar zcvf catkin-0.7.26.tar.gz catkin-0.7.26/

将文件夹进行解压的命令

tar zxvf catkin-0.7.26.tar.gz catkin-0.7.26/

然后后面就是在SPEC文件夹下面创建catkin.sepc文件

Name:		catkin
Version:	0.7.26
Release:	1
Summary:	This is ROS melodic Catkin Package
License:	GPL
URL:		https://github.com/ros-gbp/catkin-release/archive/release/melodic/catkin
Source0:	https://github.com/ros-gbp/catkin-release/archive/release/melodic/catkin-0.7.26.tar.gz
BuildRequires:	gcc-c++
BuildRequires:	cmake
#BuildRequires:	python-empy
#BuildRequires:	libpng-devel
#BuildRequires:	libjpeg-turbo-devel
#BuildRequires:	gcc-gfortran
#BuildRequires:	openblas-devel
#BuildRequires:	sqlite-devel
#BuildRequires:	fftw-devel
#BuildRequires:	boost-devel
#BuildRequires:	python3-devel
#BuildRequires:	boost-python3-devel

%description
This is ROS melodic Catkin Package include catkin_make, catkin_init_workspace, and so on.

%prep
%setup -q

#%build
#cat > hello-world2.sh < - 19.4-1
- Package init

打包城rpm 执行:

rpmbuild -ba catkin.spec

后续就要通过实际打包过程当中会出现那种报错,进行针对性的分析.

改变文件的所有权

chown -R davidhan:davidhan genmsg-0.5.16.tar.gz 

安装编译好的rpm包进行验证

rpm -ivh xxx.rpm

注意点: 在安装一个rpm包之前,一定要确定这个rpm包之前没有安装过,如果安装过的话,需要用卸载rpm包的命令,先把这个包卸载掉,然后再重新安装.

rpm -e xxx

总结一些心得:针对每个包首先你需要知道这个包当中有那些文件需要放到/opt/ros的目录下面,如何知道呢?就需要看懂cmakelist.txt到底写的是那些东西,可以参考自己的ros系统,看那些文件安装到/opt/ros下面,然后模仿,需要注意那些.in,后缀名的文件,因为这些文件还没有完全变成.py或者.sh文件,需要进行系统的一部分环境变量去转换,在打包的时候会报错.

 

4.SPEC常用知识点汇总

 

 

你可能感兴趣的:(【ROS探索】)