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

说明

打包发布可以不用编译源代码安装,看起来是更方便的软件拷贝方式,下面是一个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.comPackage: helloworld
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: A simple hello world programA 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.mzph.cn/bicheng/53943.shtml

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

相关文章

【乐吾乐大屏可视化组态编辑器】API接口文档(pgsql)

API接口文档&#xff08;pgsql&#xff09; 在线使用&#xff1a;https://v.le5le.com/ 采用前后端分离架构&#xff0c;乐吾乐后端服务提供一整套完整的web组态编辑器的所有数据接口&#xff0c;包含2D/3D图纸接口服务、文件接口服务和用户接口服务等&#xff0c;安装包版本…

长短期记忆网络和UKF的结合|Python代码例程

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中具有广泛的应用前景。 文章目录 结合LSTM和UKF的背景结合LSTM和UKF的优势应用实例研究现状Python代码示例结合LSTM和UKF的背景 长短期记忆网络(LSTM)是一种特殊的递归神经网络(RNN),…

电巢科技携Ecosmos元宇宙产品亮相第25届中国光博会

第25届中国国际光电博览会&#xff08;“CIOE中国光博会”&#xff09;今日在深圳国际会展中心盛大开幕。本届博览会以“光电引领未来&#xff0c;驱动应用创新”为主题&#xff0c;吸引了全球超过3700家优质光电企业参展&#xff0c;展示了光电产业的最新成果和前沿技术。 电…

小程序面试题八

一、微信小程序如何处理页面间的数据通信&#xff1f; 微信小程序处理页面间的数据通信&#xff0c;可以采用多种方式&#xff0c;这些方法根据具体需求和场景的不同而有所选择。以下是几种常见的页面间数据通信方式&#xff1a; 1. URL 传递参数 适用场景&#xff1a;适用于…

动手学深度学习(pytorch土堆)-04torchvision中数据集的使用

CIFAR10 CIFAR-10 数据集由 10 个类的 60000 张 32x32 彩色图像组成&#xff0c;每个类有 6000 张图像。有 50000 张训练图像和 10000 张测试图像。 数据集分为 5 个训练批次和 1 个测试批次&#xff0c;每个批次有 10000 张图像。测试批次包含每个类中随机选择的 1000 张图像…

React 嵌套类名样式不生效

修改前 父级.blog样式生效&#xff0c;子级.circle样式不生效 // app/blog/page.js import styles from "./page.module.scss"export default function Blog () {return (<div className{styles.blog}><div classNamecircle><div /></div>…

【基础算法总结】位运算

目录 一&#xff0c;常见位运算操作总结二&#xff0c;算法原理和代码实现191.位1的个数338.比特位计数461.汉明距离面试题01.01.判断字符是否唯一268.丢失的数字371.两整数之和136.只出现一次的数字137.只出现一次的数字II260.只出现一次的数据III面试题17.19.消失的两个数字 …

DIODE:超高分辨率室内室外数据集(猫脸码客 第186期)

亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 在计算…

抗菌肽;Parasin I;KGRGKQGGKVRAKAKTRSS;CAS号:219552-69-9

【Parasin I 简介】 Parasin I是一种抗菌肽&#xff0c;由19个氨基酸组成&#xff0c;最初从鲶鱼的皮肤粘液中分离得到。它具有广谱的抗菌活性&#xff0c;能够有效对抗革兰氏阳性菌和革兰氏阴性菌&#xff0c;包括一些对传统抗生素具有耐药性的菌株。 【中文名称】抗菌肽 Par…

USB摄像头视频流转RTSP流

一、VLC查看USB摄像头视频流原理&#xff1a; USB摄像头的工作原理与VLC播放其他视频文件类似&#xff0c;主要区别在于视频流的来源是实时捕获的&#xff0c;而不是预先录制的文件。如果使用VLC将USB摄像头的视频流作为RTSP服务器广播&#xff0c;需要进一步配置 二、VLC查看…

Java 设计模式-状态模式

目录 一. 概述 二. 主要角色 三. 代码示例 四. 优缺点 优点&#xff1a; 缺点&#xff1a; 五. 常见应用场景 一. 概述 状态模式是一种行为设计模式&#xff0c;它允许一个对象在其内部状态改变时改变它的行为。对象看起来好像修改了它的类。状态模式把所有的与一个特定…

scipy中稀疏矩阵特征值问题概述

在Python的scipy库中&#xff0c;这三种算法——ARPACK、LOBPCG、和AMG——都是用于求解稀疏矩阵特征值问题的数值方法。它们各自有不同的特性和适用场景&#xff0c;以下是详细说明&#xff1a; 1. ARPACK (Arnoldi Package) ARPACK&#xff08;Arnoldi Package&#xff09;…

Android前台服务如何在后台启动activity?

本来最近在开发一个app保活另外一个app的功能&#xff0c;方案介绍如下&#xff1a; 应用A 启动一个前台服务保活自己应用A 用grpc连接应用B(服务端)是否存活如果发现B不存活&#xff0c;则在服务中拉起B 这次没有做好调研&#xff0c;直接开始了开发工作&#xff0c;等grpc都…

新型 Vo1d 恶意软件曝光,超130万台安卓电视设备已中招

近日&#xff0c;有攻击者使用一种新的 Vo1d 后门恶意软件感染了 130 余万台安卓电视流媒体盒&#xff0c;使得攻击者能够完全控制这些设备。 Android TV是谷歌针对智能电视和流媒体设备推出的操作系统&#xff0c;为电视和远程导航提供了优化的用户界面&#xff0c;集成了谷歌…

MySQL--库的操作

文章目录 1.创建数据库2.创建数据库案例3.字符集和校验规则3.1默认字符集3.2默认校验规则3.3查看系统默认字符集以及校验规则3.4查看数据库支持的字符3.5查看数据库支持的字符集校验规则3.6校验规则对数据库的影响不区分大小写查询&#xff1a;排序结果&#xff1a;区分大小写查…

GO 反射

文章目录 基本概念与语法1. **获取类型和值**2. **反射修改值**3. **检查类型种类&#xff08;Kind&#xff09;** 反射的高级使用场景1. **结构体字段操作**2. **调用函数**3. **动态创建和修改切片、映射**4. **JSON 序列化/反序列化**5. **类型安全的通用函数**6. **动态生成…

架构师白话分布式系统

对于分布式系统的定义,大致可以理解为如下的两个点 分布式系统从整体的体量来说,它内部是由很多的服务器、服务实例组成。所提供的用户服务是由一组相互独立运行的服务器来提供。对于用户来说,这个多服务器的系统就跟一个服务器一样,感觉不到每个单独的服务器实例的存在。从…

JSON串

JSON在客户端的使用 JSON 字符串的格式是基于键值对的数据结构&#xff0c;用于表示结构化数据。它遵循严格的语法规则&#xff0c;常用于前后端数据交互。 1. 基本结构 JSON 数据结构由两种主要元素构成&#xff1a; 对象&#xff08;Object&#xff09;&#xff1a;用花括…

小阿轩yx-Zabbix企业级分布式监控环境部署

小阿轩yx-Zabbix企业级分布式监控环境部署 前言 “运筹帷幄之中&#xff0c;决胜千里之外”监控在 IT 运维中占据着重要地位&#xff0c;按比例说占 30% 也不为过在监控系统开源软件中有很多可选择的工具&#xff0c;但是真正符合要求的、能够真正解决业务问题的监控系统软件…

TCP与HTTP的关系

这是我面试遇到的问题&#xff0c;整理下来了&#xff0c;希望对大家有帮助&#xff01; 首先&#xff1a; TCP是传输控制协议&#xff0c;他在传输层 HTTP是超文本传输协议&#xff0c;在应用层 应用层的协议通常需要借助传输层的协议来实现网络通信从而访问网页等资源。 …