ros_qt工程打包deb格式
ros_qt工程打包deb格式
介绍
ros_qt工程完成后,经常需要部署在其他电脑,配置环境非常繁琐,将工程的可执行文件打包为deb格式,即可以直接安装运行。以下以工程record_bag为例。
文件目录结构
步骤
-
新建文件夹如文件目录结构图,将ros工程编译好的可执行文件(record_bag:工作空间/devel/lib/record_bag/record_bag)放入RecordBag/usr/lib/record_bag/ 目录下
-
在RecordBag/usr/lib/record_bag/目录下创建copy.sh脚本并赋予权限,内容如下:
#!/bin/sh exe="record_bag" #可执行文件名 des="/home/miao/RecordBag/usr/lib" #创建文件夹的下的/usr/lib目录 deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des
脚本内容自行修改,若直接复制清删除中文注释
-
在RecordBag/usr/lib/record_bag/目录下创建record_bag.sh脚本并赋予权限,内容如下:
#!/bin/sh appname=`basename $0 | sed s,\.sh$,,` dirname=`dirname $0` tmp="${dirname#?}" if [ "${dirname%$tmp}" != "/" ]; then dirname=$PWD/$dirname fi LD_LIBRARY_PATH=$dirname export LD_LIBRARY_PATH $dirname/$appname "$@"
创建完毕后在当前目录执行copy.sh, 然后运行record_bag.sh可启动可执行文件
-
创建目录DEBIAN及文件
- control:
Package: RecordBag #包名 Version: 1.0.0 #版本号 Architecture: amd64 #架构 Maintainer: miao #维护人 Description: record bag #描述
本机架构可通过如下命令查看
sudo dpkg --print-architecture
- postinst,:该文件为安装包后执行的脚本,
#!/bin/bash cp /usr/share/applications/recordbag.desktop ~/桌面 echo POST INSTALLATION FUNCTION EXECUTED
-
postrm:该文件为卸载软件后执行脚本
#!/bin/sh sudo rm /usr/share/applications/recordbag.desktop sudo rm ~/桌面/recordbag.desktop
-
图标设置
在RecordBag/usr/lib/share/applications/ 中创建recordbag.desktop文件 ,内容如下:
[Desktop Entry] Name=RecordBag #包名 Comment=record bag tool #描述 Exec=/usr/lib/record_bag/record_bag.sh #可执行文件 Icon=/usr/share/icons/record_bag.png #图标 Terminal=false #是否启动终端 Type=Application #应用类型 X-Ubuntu-Touch=true # Categories=Development #分类
在RecordBag/usr/lib/share/icons/ 放置图标图片
-
打包
sudo dpkg -b RecordBag/ RecordBag_1.0.0_amd64.deb
-
安装
sudo dpkg -i RecordBag_1.0.0_amd64.deb
-
删除
sudo dpkg -r RecordBag
-
参考
https://blog.csdn.net/Jasonseven7/article/details/116013215