linuxQt程序打包

linux程序打包

qt程序打包与执行

  1. 将release版本生成的移动到新建文件夹中;

  2. linux下qt打包的sh文件
    例如,生成pack.sh

    #!/bin/sh
    exe="mytest" #需发布的程序名称
    des="/home/test/mytest/install" #步骤一中新建目录的完整路径
    deplist=$(ldd $exe|awk '{if (match($3,"/")){printf("%s "),$3}}')
    cp $deplist $des
    

    在命令行输入 sh pack.sh 即可。
    外部链接库需要自己放入

  3. 运行qt程序的sh文件
    例如,生成mytest.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 $*   
    

    在命令行输入 sh mytest.sh 即可。

deb文件打包与解压

  • 在任意目录下模拟出一个Linux的文件架构
  1. 创建DEVLAN文件夹

    • 在DEBIAN下创建control、copyright、postinst等文件

    • 创建control文本

      Package: mysoftware
      Version: 2016-02-26
      Section: free
      Priority: optional
      Depends: libssl.0.0.so, libstdc++2.10-glibc2.2
      Suggests: Openssl
      Architecture: i386
      Installed-Size: 66666
      Maintainer: Simon @ newdivide7037#gmail.com
      Provides: mysoftware
      Description: just for test
      

      Package:软件包的名称(mysoftware)

      Version:版本号(2021-08-06)

      Section:申明软件的类别(常见的有’utils’,‘net’,‘mail’,‘text’,'x11’等)

      Priority:软件对于系统的重要程度(如’required’,‘standard’,‘optional’,‘extra’)

      Essential:申明是否是系统最基本的软件包(yse或者no)

      Architecture:软件包结构(如’i386’,‘amd64’,‘m68k’,‘sparc’,‘alpha’,‘powerpc’)

      Source:软件包的源代码名称

      Depends:软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之间采用逗号隔开

      Pre-Depends:软件安装前必须安装、配置依赖性的软件包和库文件,它常常用于必须的预运行脚本需求

      Recommends:表明推荐的安装的其他软件包和库文件

      Suggests:建议安装的其他软件包和库文件

      Priority:声明这个包的优先级(大部分的时候使用optional(可选的))

      Eseential:指该软件包是否是必须的(大部分的时候不是)

      Maintainer:制作此打包文件的作者(zh[邮箱])

      Conflicts:表示跟这个程序冲突的软件

      Replaces:表明哪些软件包将被这个程序取代

      Description:针对此软件的描述

      Installed-Size: 安装后的大小

    • postinst.sh

      处理安装后的事件的脚本文件,比如创建快捷方式,删除备份文件等操作,按需添加

    • prerm.sh

      处理删除前操作的脚本文件,按需添加

    • preinst.sh

      一个脚本文件,用于备份(以便安装失败时回滚)

    • postrm.sh

      处理删除后操作的脚本文件,按需添加

  2. opt文件夹

    • 将可执行程序lzj.jar置于opt目录下(xxx.desktop文件配置Exec执行命令)
  3. usr文件夹

    • 在usr目录下建立share目录,在share目录下建立applications与icons目录
  4. 命令行输入

    dpkg -b . xxx.deb
    

    或者

    dpkg -b . .
    
    fakeroot dpkg - b . .
    

    完成打包。

  5. 命令行输入,其中/xxx/指的是安装路径

    sudo dpkg -x xxx.deb /xxx/
    

    完成解包,密码默认123456。

dpkg相关命令

dpkg -b xxx1 xxx2.deb 第一个参数为将要打包的目录名,第二个参数为生成包的名称

dpkg -i xxx.deb 安装deb包

dpkg -r xxxx(包名) 卸载deb包

dpkg -s xxxx(包名) 查看deb包是否安装

dpkg -c xxx.deb 查看deb包文件内容

dpkg --info xxx.deb 查看当前目录某个deb包的信息

dpkg -X xxxx.deb xxx(目录名) 解压deb包中所要安装的文件(解压到后面的目录下)

dpkg -e xxx.deb xxx/DEBIAN 解压deb包中DEBIAN目录下的文件(至少包含control文件)

sudo apt-get install ./xxx.deb 先安装依赖包,再安装deb包(注意,在包名前必须要指定相对路径或者绝对路径)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值