• [Qt]-打包程序为Debian的deb格式的安装包


    参考:https://segmentfault.com/a/1190000005029385
    参考:UnityLaunchersAndDesktopFiles

    deb是Debian Linux的软件包格式。一般来说是需要通过编译源码然后制作deb包。
    但是,为了快速方便,下面直接在程序打包的基础上来进行deb包的封装。

    步骤如下:

    先完成程序的打包

    先把程序打包完成。

    创建需要的目录结构和文件

    首先建立一个工作目录,比如在主文件夹下建立YouAppName目录:

    $ cd ~
    $ mkdir YouAppName 
    $ cd YouAppName
    

    deb文件在安装的时候默认是将文件释放到Linux系统的根目录下,即/

    如果我们这里设定安装路径为/opt,那么就安装到opt下。

    操作如下:

    mkdir -p opt
    # 把之前打包好的cp到设置目录结构的opt下
    cp -a YouAppName/opt/ 
    

    我们创建一个opt目录,这样安装的时候就可以安装到系统的/opt下面去了。你创建什么目录,它安装到哪里去(前提得是Linux系统下的标准目录。)

    同时我们还需建立一个DEBIAN目录,需要在DEBIAN目录下创建一个control文件,并加入以下内容:

    package: YouAppName 
    Version: 1.0
    Section: utils
    Priority: optional
    Architecture: amd64
    Depends:
    Maintainer: you email or inc
    Description: YouAppName-deb
    

    desktop

    [Desktop Entry]
    Version=1.0 #app的版本
    Name=YouAppName #app的名字
    Comment= this app use for test #说明信息 
    Exec=/opt/YouAppName/YouAppName.sh #app的执行路径,请使用绝对路径
    Icon=/opt/YouAppName/lib/YouAppName.png #icon 路径,请使用绝对路径
    Terminal=false #是否在终端启动
    Type=Application
    Categories=Utility;Application;
    

    大概的项目结构(非debian标准)

    注: 请根据实际情况灵活配置目录,请参考下面我组织的结构

    //  TODO 后面有空补充完善
    
    └── YouAppName  #目录
        ├── opt #目录
        │   ├── YouAppName #目录 自己应用程序的名字
        │       |── YouAppName  # 程序或文件 Qt生成的或其它可运行程序
        |       |—— YouAppName.sh #程序的启动脚本。
        |       |—— 项目封装的so或者第三方的so文件和可执行文件放在同一层级(只是建议)
        │       |── lib #目录 Qt相关的的so文件
        |       |—— plugins #目录 Qt的插件       
        │       ├── YouAppName.desktop  
        │       ├── YouAppName.png
        │       ├── ...等等文件
        │     
        └── DEBIAN  #目录 名字确定
            ├── control   #控制文件 名字不可改,必须有这个文件
            ├── postinst  #脚本文件 名字不可改,运行sudo dpkg -i xx.deb命令时,会运行这个脚本. 非必须文件
            ├── postrm    #脚本文件 名字不可改,运行sudo dpkg -r app 命令时,会运行这个脚本 .非必须文件
    

    封装为debian系的deb安装包命令

    sudo dpkg -b YouAppName/ YouAppName_V1.0_amd64.deb
    

    安装,卸载debian包

    dpkg命令
    dpkg的基本使用

    // 注: 需要写软件的名字,tab并不能补全
    sudo dpkg -i xxx.deb  安装deb包 
    sudo dpkg -r xxx  卸载
    sudo dpkg -P xxx 卸载(并且删除配置文件)(推荐使用这个,卸载的干净)
    

    注意事项

    给desktop文件添加执行权限(非必须,但是建议)

    chmod 755 YouAppName.desktop

    指定desktop文件

    不过xxx.desktop 的写法要一个限制:包含“Exec”那一行,“=”和要执行的程序之间要留一个空格。也就是Exec=XXX是无法通过“sh xxx.desktop”执行,正确的是Exec= XXX。


    欢迎交流学习,共同进步
    限本人水平有限,如有错误请指教,谢谢
  • 相关阅读:
    https://vjudge.net/problem/计蒜客-44317/origin
    zsh终端配置环境变量:
    python库路径问题
    pandas 常用API
    https://codeforces.com/contest/1301/problem/B
    vue中8种组件通信方式, 值得收藏!
    让你减少加班的15条高效JS技巧!记得收藏哦
    那个炒鸡有趣的HTML5标签 —— <dataList>
    前端面试之浏览器/HTML/CSS问题
    插件界的瑞士军刀,vs code已经无所不能!
  • 原文地址:https://www.cnblogs.com/__tudou__/p/15006892.html
Copyright © 2020-2023  润新知