DEB打包教程
一、deb简介
deb是一种安装包的格式,linux上常见的安装包主要是deb、rpm
二、deb简单使用
# deb安装 sudo dpkg -i webcamera_1.0_amd64.deb
# deb卸载 sudo dpkg -r webcamera
# deb生成 dpkg -b deb webcamera_1.0_amd64.deb
三、打包 - 正文
# 打包的命令
dpkg -b 文件夹名称 安装包名称
dpkg -b deb webcamera_1.0_amd64.deb
因为linux上我主要是做国产系统(kylin + UOS),所以打包也要考虑到国产系统的规范。下面的要求应该是上传应用商店的要求,虽然我的程序不需要上架应用商店,但是为了规范最起码安装包的名称还是需要按照国产系统的规范来的。
kylin打包规范
1.命名:packageName_version_platform.deb
2.平台可选:mips64el amd64 arm64 loongarch64
3.control文件,关键字首字母大写,冒号后面必须有空格
4.control文件,必填字段:Package、Version、Architecture、Maintainer、Description,且内容不能为空
5.control文件,建议字段:Depends、Section、Priority。参考:https://www.debian.org/doc/debian-policy/ch-controlfields.html
# 目录结构 deb
- DEBIAN
- - control // 包信息
- - postinst // 安装后脚本
- - prerm // 卸载前脚本
- opt
- - webCamera
- - - webCamera
- - - start.sh
- - - eloam.rules
# control 描述文件 Package: webcamera
Version: 1.0
Architecture: amd64
Maintainer: huyang
Priority: optional
Description: server
# postinst 文件
#!/bin/bash chmod 777 /opt/webcamera/webcamera
chmod 777 /opt/webcamera/start.sh cp /opt/webcamera/webcamera.desktop /usr/share/applications/webcamera.desktop # 桌面快捷方式,kylin:桌面 UOS:Desktop
if [ -d ~/桌面 ];then
cp /opt/webcamera/webcamera.desktop ~/桌面/webcamera.desktop
else
cp /opt/webcamera/webcamera.desktop ~/Desktop/webcamera.desktop
fi # rules
cp /opt/webcamera/eloam.rules /etc/udev/rules.d/eloam.rules
sudo udevadm control --reload-rules
# prerm 钩子文件 #!/bin/bash rm -rf /opt/webcamera/*.log
rm /usr/share/applications/webcamera.desktop
rm ~/桌面/webcamera.desktop
主要就是几个描述文件,如果你的程序不需要钩子,那只要一个 control 描述文件就可以了
DEB打包教程的更多相关文章
- Inno打包教程_百度经验
Inno打包教程 Inno工具,是比较常用的打包软件.简简单单,一招叫你学会使用inno打包. 工具/原料 inno setup 软件 方法/步骤 双击桌面的:Inno setup compiler图 ...
- 关不掉的小姐姐程序python tkinter实现 学习---打包教程
首先,我们先准备两个.py文件,还要图片文件 代码//是我自己手写的,copy时记得删掉,不然有可能错误,比如中英文啥的 当然 一些语法的无问题就百度,都能给你答案 第一个.py ...
- WeX5 苹果APP打包教程
来源:http://docs.wex5.com/app-packing/ WeX5平台App打包教程 WeX5是前端快速开发框架,可开发跨端运行应用,是移动App/微信/WebApp开发利器,一次开发 ...
- C# winform Visual Studio Installer打包教程
C# winform Visual Studio Installer打包教程 软件在功能开发实现后,其实并没有真正的完成.对于一个专业的开发者来说,Release软件应该是以安装版本的形式进行发布的 ...
- InstallShield 2015 Limited Edition 打包教程
InstallShield 2015 Limited Edition 打包教程 右键解决方案,新增项目,选择其他项目类型,安装和部署. InstallShield2015可以免费使用,但需要下载.安装 ...
- linux软件deb打包及开机管理员自启动
环境:Ubuntu 18.04/16.04 Qt:5.12.6 一 deb打包 1.建立目录结构 2.目录内容 1) 子目录DC520: Get以上内容步骤: (1) 创建目录DC520(自己软 ...
- 使用deb 打包开发的postgres extension 另外一种方法
已经写过一个deb 包打包的方法,我们同时也可以使用dpkg-deb 命令 安装依赖工具包 推荐安装全点的 sudo apt-get install build-essential autoconf ...
- 使用deb 打包开发的postgres extension
昨天写过一个使用rpm 打包分发pg 扩展的demo,今天使用deb 进行打包分发,同时使用checkinstall 生成我们的deb包 安装deb 依赖 sudo apt-get install c ...
- Install Shield 打包教程
我的是已经下载过打包工具InstallShield2013LimitedEdition,没有下载的只有下面那个灰色的的图标,不过没关系选中灰色的点确定直接跳到下载页面了.下载完成后再重新添加安装和部署 ...
- Inno setup 简单打包教程
转自:http://blog.csdn.net/ruifangcui7758/article/details/6662646 前段时间关注了VC6.0自带的Installshield打包的使用方法,感 ...
随机推荐
- 【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面
问题描述 在APIM中配置JWT策略,验证JWT,如果认证失败,则跳转到 Azure Entra ID 的 Login 页面. 问题解答 要实现JWT验证失败后,跳转到 Azure Entra ID ...
- Acwing第132场周赛
AcWing 5366. 大小写转换 签到题,可以用stl里面的tolower函数 #include <bits/stdc++.h> #define ls p<<1 #defi ...
- C#项目管理引用的dll文件
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期使用. 设置dll路径 参考C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁中间的 方法一:配置App.config文件的pri ...
- 修改校准debain/manjaro的时间时钟
一次重启后发现时间竟然从上午变成了晚上!要问,我是怎么发现在的我就是发现上午的时候我的屏幕夜灯突然出现了 使用命令 sudo rm -f /etc/localtime删除本地时间文件 sudo cp ...
- 关于黑客网络 for linux,这个游戏的启动解决方法
原帖位置https://tieba.baidu.com/p/6200215090
- In-batch negatives Embedding模型介绍与实践
语义索引(可通俗理解为向量索引)技术是搜索引擎.推荐系统.广告系统在召回阶段的核心技术之一.语义索引模型的目标是:给定输入文本,模型可以从海量候选召回库中快速.准确地召回一批语义相关文本.语义索引模型 ...
- QT 自定义QGraphicsItem 缩放后旋转 图形出现漂移问题
实现自定义QGraphicsItem缩放和旋转时,遇到了这样一个问题:将item旋转一个角度,然后拖拽放大,再次进行旋转时图像会发生漂移.原本以为是放大后中心点位置没有改变,导致旋转时以原中心的旋转出 ...
- day06-SpringMVC底层机制简单实现-02
SpringMVC底层机制简单实现-02 https://github.com/liyuelian/springmvc-demo.git 4.任务3-从web.xml动态获取容器配置文件 4.1分析 ...
- 怎么实现Redis的高可用?(主从、哨兵、集群)
高可用有两个含义:一是数据尽量不丢失,二是保证服务尽可能可用. AOF 和 RDB 数据持久化保证了数据尽量不丢失,那么多节点来保证服务尽可能提供服务. 一般在实际生产中,服务不会部署成单节点,主要是 ...
- Python解压当天创建的ZIP文件到指定的文件夹中
1. 首先,导入了需要使用的模块: - `zipfile`:用于处理ZIP文件的模块. - `os`:提供了与操作系统交互的功能. - `shutil`:用于高级文件操作,例如移动文件等. - `da ...