【linux笔记dpkg-buildpackage打包】把一个helloworld程序打包为deb包

news2024/9/21 17:33:41

说明

打包发布可以不用编译源代码安装,看起来是更方便的软件拷贝方式,下面是一个dpkg-buildpackage工具的最简打包过程实例

先建立一个helloworld程序

  • main.c
#include <stdio.h>

int main() {
  printf("Hello, World!\n");
  return 0;
}
  • CMakeLists.txt, cmake也有打包工具,这里使用dpkg-buildpackage打包(没跑通cpak QAQ)
cmake_minimum_required(VERSION 3.10)
project(helloworld C)

set(CMAKE_C_STANDARD 99)

add_executable(helloworld main.c)
  • 简单测试下
mkdir build
cd build
cmake ..
make

建立deb打包相关配置文件

  • 在build目录里建立debian,debian下面建立下面几个文件
touch control
touch install
touch rules
touch compat
  • control
Source: helloworld
Section: utils
Priority: optional
Maintainer: Your Name <your.email@example.com>
Build-Depends: debhelper (>= 11)
Standards-Version: 4.1.4
Homepage: http://example.com

Package: helloworld
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: A simple hello world program
 A simple hello world program written in C.
  • install
helloworld usr/bin/
  • rules, 注意这里dh %@这一行前面的缩进,拷贝过去报错的话建议手敲,应该是两个空格
#!/usr/bin/make -f

%:
	dh $@
  • compat
11
  • 生成changelog,使用dch命令,进入一个交互流程,会让你选择自己的编辑器并创建一条日志
dch --create  
  • 最小修改,注意修改第一行的包名和版本号:
    在这里插入图片描述

打包测试

  • build目录下
dpkg-buildpackage -us -uc
  • 会在根目录下生成
    在这里插入图片描述
  • 测试,可以正常安装/运行/卸载
    在这里插入图片描述
  • 测试结束时的目录结构:
    在这里插入图片描述
  • 依赖少什么就装什么,应该没有特殊注意的部分

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序开关组件

前提是vant组件库不太好改&#xff0c;干脆就手写了一个 <template><view class"switch-container" click"toggleOrder"><view :class"[switch-text, left-text, { left-textChoose: isReverseOrder }]">{{ leftText }}</…

渣土车监控摄像头

渣土车监控摄像头 是一种结合了监控摄像技术和车辆安全管理的先进设备&#xff0c;旨在通过实时监测和录制车辆行驶过程中的画面&#xff0c;提高渣土车的安全性和管理效率。这种摄像头在建筑工地、城市道路、交通执法等领域有着广泛的应用前景。 渣土车监控摄像头在建筑工地运…

在AIoT设备上加速深度神经网络推理的进展:一项综述

这篇论文的标题是《Advancements in Accelerating Deep Neural Network Inference on AIoT Devices: A Survey》&#xff0c;作者是 Long Cheng, Yan Gu, Qingzhi Liu, Lei Yang, Cheng Liu, Ying Wang。论文主要探讨了在人工智能物联网&#xff08;AIoT&#xff09;设备上加速…

多层建筑能源参数化模型和城市冠层模型的区别

多层建筑能源参数化&#xff08;Multi-layer Building Energy Parameterization, BEP&#xff09;模型和城市冠层模型&#xff08;Urban Canopy Model, UCM&#xff09;都是用于模拟城市环境中能量交换和微气候的数值模型&#xff0c;但它们的侧重点和应用场景有所不同。以下是…

重要涉密文件如何防窃取?一分钟了解这5个有效的办法,超实用!

在信息化时代&#xff0c;重要涉密文件承载着企业的核心业务机密、技术专利和敏感客户信息等关键数据。 一旦这些文件被不法分子窃取&#xff0c;不仅会导致无法估量的经济损失&#xff0c;还会严重损害企业的声誉。 因此&#xff0c;构建一个全面的防护体系来防止涉密文件被…

癌症细胞状态的十年探索:单细胞RNA测序的启示

癌症细胞状态的十年探索&#xff1a;单细胞RNA测序的启示 引言 在过去的十年里&#xff0c;单细胞RNA测序&#xff08;scRNA-seq&#xff09;技术彻底改变了我们对复杂生物系统的理解&#xff0c;尤其是在癌症研究领域。癌症作为一种由多种遗传克隆和恶性细胞状态组成的复杂生…

2024年开学季,有哪些大学宿舍必备好物?

随着2024年开学季的到来&#xff0c;新生们即将离开熟悉的家乡&#xff0c;踏入充满未知与挑战的大学生活。对于许多学子而言&#xff0c;宿舍不仅是他们未来几年的居住之所&#xff0c;更是承载青春记忆、实现自我成长的重要空间。为了帮助大家更好地适应校园生活&#xff0c;…

基于Arduino和PCB技术的机器人炫彩矩阵点屏的制作过程

第一部分&#xff1a;引入 随着物联网和嵌入式系统技术的发展&#xff0c;炫彩点阵屏在装饰和信息显示中得到广泛应用。本文将记录如何使用Arduino板、WS2812灯珠和PCB制作技术实现机器人炫彩点阵屏的制作过程。WS2812灯珠以其高亮度、色彩丰富和可编程性&#xff0c;成为制作…

探索代码的守护者:Pyflakes,Python代码的隐形盾牌

文章目录 探索代码的守护者&#xff1a;Pyflakes&#xff0c;Python代码的隐形盾牌第一部分&#xff1a;背景介绍第二部分&#xff1a;Pyflakes是什么&#xff1f;第三部分&#xff1a;如何安装Pyflakes&#xff1f;第四部分&#xff1a;Pyflakes的简单使用方法第五部分&#x…

STM32 移植FATFS时遇到ff_oem2uni函数未定义问题

STM32 移植FATFS时遇到ff_oem2uni/ff_uni2oem/ff_wtoupper函数未定义问题 在移植STM32 FATFS文件系统代码时&#xff0c;完成后编译遇到如下错误&#xff1a; 经过排查分析&#xff0c;是文件没有添加完全导致的&#xff1a; 把ffunicode.c文件添加进工程就可以了&#xff…

CAN数据记录仪与乘用车或者工程车辆OBD口连接注意事项

CAN数据记录仪配置好参数后&#xff0c;车上OBD接口CAN信号线定义是3&#xff0c;11(CANH,CANL)&#xff1b;6&#xff0c;14(CANH,CANL)&#xff0c;直接插到车上可以正常记录数据&#xff1b; 具体分析步骤如下&#xff1a; 1.使用之前了解CANFDLog-VCI设备的接口定义。 下图…

Java Web实战:利用三层架构与Servlet构建登录注册模块

前言导读 三层架构&#xff1a;View&#xff08;视图层&#xff09;Service&#xff08;业务层&#xff09;DAO&#xff08;持久层&#xff09; 使用了JDBCtemplate技术&#xff0c;封装了原生的JDBC技术操作MySQL数据库&#xff08;DAO层&#xff09;实现了登录功能和注册功能…

PyQt5 图标(icon)显示问题

遇到这种情况&#xff0c;一般采用下面几种方法&#xff0c;特别是第三种。 第一种&#xff0c;直接应用绝对路径&#xff1a; self.setWindowIcon(QIcon("F:/Workspace/PyQT5-Study/images/cat.png"))第二种&#xff0c;采用动态路径&#xff1a; from PyQt5.QtC…

轻量级模型解读——轻量transformer系列

先占坑&#xff0c;持续更新 。。。 文章目录 1、DeiT2、ConViT3、Mobile-Former4、MobileViT Transformer是2017谷歌提出的一篇论文&#xff0c;最早应用于NLP领域的机器翻译工作&#xff0c;Transformer解读&#xff0c;但随着2020年DETR和ViT的出现(DETR解读&#xff0c;ViT…

YOLOv9改进策略【卷积层】| SCConv:即插即用,减少冗余计算并提升特征学习

一、本文介绍 本文记录的是利用SCConv优化YOLOv9的目标检测网络模型。深度神经网络中存在大量冗余&#xff0c;不仅在密集模型参数中&#xff0c;而且在特征图的空间和通道维度中。SCConv模块通过联合减少卷积层中空间和通道的冗余&#xff0c;有效地限制了特征冗余&#xff0…

领夹麦克风哪个品牌好,哪种领夹麦性价比高,无线麦克风推荐

在音频录制需求日益多样化的今天&#xff0c;无线领夹麦克风作为提升音质的关键设备&#xff0c;其重要性不言而喻。市场上鱼龙混杂&#xff0c;假冒伪劣、以次充好的现象屡见不鲜。这些产品往往以低价吸引消费者&#xff0c;却在音质、稳定性、耐用性等方面大打折扣&#xff0…

突发!OpenAI发布最强模型o1:博士物理92.8分,IOI金牌水平

梦晨 衡宇 发自 凹非寺量子位 | 公众号 QbitAI 参考ChatGPT&#xff1a;点击使用 来了来了&#xff01;刚刚&#xff0c;OpenAI新模型无预警上新&#xff1a; o1系列&#xff0c;可以进行通用复杂推理&#xff0c;每次回答要花费更长时间思考。 在解决博士水平的物理问题时&a…

034-GeoGebra中级篇-关于geogebra的版本以及如何下载本地geogebra

目前&#xff0c;geogebra常用的有geogebra5和geogebra6&#xff0c;本文旨在对比GeoGebra 5和GeoGebra 6两个版本&#xff0c;以揭示它们在功能、用户体验和性能上的主要差异。GeoGebra 5作为一款成熟的数学软件&#xff0c;已经为用户提供了丰富的功能来进行几何、代数、统计…

太牛了!顺丰丰语大语言模型:已应用于20余个场景

9月8日&#xff0c;顺丰科技在深圳国际人工智能展上发布了物流行业的垂直领域大语言模型——丰语&#xff0c;并展示了大模型在顺丰的市场营销、客服、收派、国际关务等业务板块的二十余个场景中的落地实践应用。 发布会现场&#xff0c;中国科学院院士姚建铨、美国医学与生物…

JVS逻辑引擎:如何实现复杂业务逻辑的邮件自动化

大家好&#xff0c;我是软件部长&#xff0c;今天给大家介绍JVS逻辑引擎的发送邮件节点功能。 JVS提供低代码、物联网、规则引擎、智能BI、逻辑引擎、无忧企业文档&#xff08;在线协同&#xff09;、无忧企业计划、无忧企业邮筒等平台&#xff0c;欢迎关注微信公众号: 【软开企…