[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包
// 注: 需要写软件的名字,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格式的安装包的更多相关文章
- Win10离线安装.NET Framework 3.5的方法补充(附cab格式离线安装包下载) - 转载
MS酋长很早以前已经分享了<Win10离线安装.NET Framework 3.5的方法技巧>,同时分享了exe格式的.NET Framework 3.5离线安装包下载地址.但有部分网友反 ...
- Linux中软件安装包的格式
一.Linux常用安装包及安装方法 1.安装包一般有四类: 1)tar包,如software-1.2.3-1.tar.gz.他是使用UNIX系统的打包工具tar打包的. 2)rpm包,如softwar ...
- iOS开发——程序员必备&iOS安装包的三种格式 deb、ipa 和 pxl的解释和说明
iOS安装包的三种格式 deb.ipa 和 pxl的解释和说明 目前 iOS 平台上常见的安装包有三种,deb.ipa 和 pxl.转自链接:http://fanlb.blogbus.com/logs ...
- iOS 平台上常见的安装包有三种,deb、ipa 和 pxl
前言:目前 iOS 平台上常见的安装包有三种,deb.ipa 和 pxl. 其中 deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统 ...
- Inno Setup制作应用程序安装包
我最近写了一个MFC应用程序,想发给其他的小伙伴玩一玩,直接发了个exe文件过去,结果发现小伙伴那边打不开.原来这个exe文件虽然是MFC静态编译的,但是还依赖了其他几个.dll文件,需要把这几个dl ...
- AppImage格式安装包使用
AppImage(以及前身klik和portablelinuxapps)不会安装传统意义上的软件(即它不会将文件放在系统中的所有位置). 它每个应用程序使用一个文件.每个都是自包含的:它包括应用程序所 ...
- NSIS打包(二)第一个安装包
基本介绍完之后,我们大概了解了NSIS中有哪些组件,现在我们通过一个简单的demo来学习如何使用这些组件. 1.环境配置 NSIS的环境非常简单,只有一个安装包,安装后即可使用. 官网:http:// ...
- [程序安装包制作] Advanced Installer 备忘
原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...
- Qt之程序发布以及打包成exe安装包
一.简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工 ...
随机推荐
- 如何彻底禁止 macOS Big Sur 自动更新,去除更新标记和通知
作者:gc(at)sysin.org,主页:www.sysin.org 请访问原文链接:https://sysin.org/article/Disable-macOS-Update/,查看最新版.原创 ...
- 人体姿态和形状估计的视频推理:CVPR2020论文解析
人体姿态和形状估计的视频推理:CVPR2020论文解析 VIBE: Video Inference for Human Body Pose and Shape Estimation 论文链接:http ...
- TensorRT 数据格式说明
TensorRT数据格式说明 NVIDIA TensorRT支持不同的数据格式.需要考虑两个方面:数据类型和布局. 数据类型格式 数据类型是每个单独值的表示.它的大小决定了数值的范围和表示的精度:分 ...
- thymeleaf+Springboot实现自定义标签
在项目开发中,有一些组件不能满足我们快速开发的要求,我们需要封装一些组件来更加的便利我们.比如,我们可以封装一个下拉框组件,只要开发人员只有引用这个组件的标签,就能出现效果,而不用再去请求url,渲染 ...
- MySQL慢查询日志如何开启以及分析
1.MySQL慢查询日志是什么 (1)MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中查询时间超过(大于)设置阈值(long_query_time)的语句,记录到慢查询日志 ...
- 汉枫Wi-Fi串口服务器HF2211S应用案例
实现的功能 该模块上电后主动以mobusRTU协议,通过本模块的串口将气体检测仪的4路传感器数据读取 模块上电后连接指定WiFi,通过MQTT协议将读取到的数据以JSON格式推送到指定服务器. 具体细 ...
- Task05:SQL高级处理
5.1 窗口函数 5.1.1 窗口函数概念及基本的使用方法 窗口函数也称为OLAP函数.OLAP 是OnLine AnalyticalProcessing 的简称,意思是对数据库数据进行实时分析处理. ...
- 为什么选择ASP.NET Core
什么是.NET 有一次小飞去面试,面试官上来就问了一个宏观的问题:"你觉得什么是.NET"?小飞的脑子嗡嗡的,支吾了半天,才吐了一些碎片化的词语:"跨平台.开源.微软-& ...
- LuatOS | 全新在线模拟器,随时随地发挥创意
LuatOS --运行在嵌入式硬件的实时操作系统,开启全新物联网生态. 聚焦嵌入式应用生态,内置功能可支持绝大多数物联网应用场景.深度整合Lua语言,只需少量内存和Flash空间就能运行.不局限于合宙 ...
- 【模拟】10-15 题解 trans
Trans 题目描述 Tgopknight决定使用他的幸运数字2和3来进行这个游戏,他一开始有n个数字,记为{dn}需要 进行k次操作,每次操作找到最小的x使得dx = 2并且dx+1 = 3,此时如 ...