参考: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。

[Qt]-打包程序为Debian的deb格式的安装包的更多相关文章

  1. Win10离线安装.NET Framework 3.5的方法补充(附cab格式离线安装包下载) - 转载

    MS酋长很早以前已经分享了<Win10离线安装.NET Framework 3.5的方法技巧>,同时分享了exe格式的.NET Framework 3.5离线安装包下载地址.但有部分网友反 ...

  2. Linux中软件安装包的格式

    一.Linux常用安装包及安装方法 1.安装包一般有四类: 1)tar包,如software-1.2.3-1.tar.gz.他是使用UNIX系统的打包工具tar打包的. 2)rpm包,如softwar ...

  3. iOS开发——程序员必备&iOS安装包的三种格式 deb、ipa 和 pxl的解释和说明

    iOS安装包的三种格式 deb.ipa 和 pxl的解释和说明 目前 iOS 平台上常见的安装包有三种,deb.ipa 和 pxl.转自链接:http://fanlb.blogbus.com/logs ...

  4. iOS 平台上常见的安装包有三种,deb、ipa 和 pxl

    前言:目前 iOS 平台上常见的安装包有三种,deb.ipa 和 pxl. 其中 deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统 ...

  5. Inno Setup制作应用程序安装包

    我最近写了一个MFC应用程序,想发给其他的小伙伴玩一玩,直接发了个exe文件过去,结果发现小伙伴那边打不开.原来这个exe文件虽然是MFC静态编译的,但是还依赖了其他几个.dll文件,需要把这几个dl ...

  6. AppImage格式安装包使用

    AppImage(以及前身klik和portablelinuxapps)不会安装传统意义上的软件(即它不会将文件放在系统中的所有位置). 它每个应用程序使用一个文件.每个都是自包含的:它包括应用程序所 ...

  7. NSIS打包(二)第一个安装包

    基本介绍完之后,我们大概了解了NSIS中有哪些组件,现在我们通过一个简单的demo来学习如何使用这些组件. 1.环境配置 NSIS的环境非常简单,只有一个安装包,安装后即可使用. 官网:http:// ...

  8. [程序安装包制作] Advanced Installer 备忘

    原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...

  9. Qt之程序发布以及打包成exe安装包

    一.简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工 ...

随机推荐

  1. Elasticserch与Elasticsearch_dsl用法

    Elasticserch与Elasticsearch_dsl用法 Elasticsearch_dsl::https://elasticsearch-dsl.readthedocs.io/en/late ...

  2. Elasticsearch分页查询

    global index global CLIENT index = "guajibao-ipused-2019.10.13" CLIENT = Elasticsearch(hos ...

  3. 4,java数据结构和算法:双向链表 ,有序添加,正向遍历,反向遍历, 增删改查

    直接上代码 //节点 class HeroNodeD{ int no; String name; String nickName; HeroNodeD pre;//前一节点 HeroNodeD nex ...

  4. 【零基础学深度学习】动手学深度学习2.0--tensorboard可视化工具简单使用

    1 引言 老师让我将线性回归训练得出的loss值进行可视化,于是我使用了tensorboard将其应用到Pytorch中,用于Pytorch的可视化. 2 环境安装 本教程代码环境依赖: python ...

  5. Redis-持久化策略

    redis是一个内存数据库,一旦服务器宕机,内存中的数据将全部丢失.所以,对 Redis 来说,实现数据的持久化,避免从后端数据库中进行恢复,是至关重要的. 目前,Redis 的持久化主要有两大机制, ...

  6. ConcurrentSkipListMap - 秒懂

    疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 面试必备 + 面试必备 [博客园总入口 ] 疯狂创客圈 经典图书 : <Sprin ...

  7. SpringCloud Alibaba实战(9:Hystrix容错保护)

    源码地址:https://gitee.com/fighter3/eshop-project.git 持续更新中-- 在上一节我们已经使用OpenFeign完成了服务间的调用.想一下,假如我们一个服务链 ...

  8. Docker笔记--操作容器命令

    Docker笔记--操作容器命令 创建容器 docker [container] create-- 创建容器,使用docker [container] create命令新建的容器处于停止状态,可以使用 ...

  9. 三剑客-sed

    1.sed命令概述说明: 字符流编辑工具(行编辑工具) 2.sed命令作用说明: (1)擅长对行进行操作处理 (2)擅长将文件的信息进行修改调整/删除 3.sed具体功能 (1)文件中添加信息的能力( ...

  10. MySQL数据库复制技术应用实战(阶段二)

    MySQL数据库复制技术应用实战(阶段二)文档 作者 刘畅 时间 2020-9-27 服务器版本:CentOS Linux release 7.5.1804 主机名 ip地址 服务器配置 安装软件 密 ...