ros_qt工程打包deb格式

ros_qt工程打包deb格式

介绍

ros_qt工程完成后,经常需要部署在其他电脑,配置环境非常繁琐,将工程的可执行文件打包为deb格式,即可以直接安装运行。以下以工程record_bag为例。

文件目录结构

步骤

  1. 新建文件夹如文件目录结构图,将ros工程编译好的可执行文件(record_bag:工作空间/devel/lib/record_bag/record_bag)放入RecordBag/usr/lib/record_bag/ 目录下

  2. 在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
    

    脚本内容自行修改,若直接复制清删除中文注释

  3. 在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可启动可执行文件

  4. 创建目录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
      
  5. 图标设置

    在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/ 放置图标图片

  6. 打包

    sudo dpkg -b RecordBag/ RecordBag_1.0.0_amd64.deb
    
  7. 安装

    sudo dpkg -i RecordBag_1.0.0_amd64.deb
    
  8. 删除

    sudo dpkg -r RecordBag
    
  9. 参考
    https://blog.csdn.net/Jasonseven7/article/details/116013215

posted @ 2022-04-24 17:38  miaorn  阅读(505)  评论(0编辑  收藏  举报