首页 > 其他分享 >deb包的打包流程

deb包的打包流程

时间:2023-11-02 11:55:51浏览次数:38  
标签:文件 流程 卸载 软件包 deb 安装 DEBIAN 打包

一、deb的文件结构

Debian 软件包(.deb)是一种用于 Debian 及其基于 Debian 的 Linux 发行版的软件包格式。这些软件包包含了用于安装、升级和卸载软件的文件和元数据。

 .deb 文件通常遵循一定的文件结构,包括以下主要部分:

  • 控制信息 (control):DEBIAN/control 文件包含软件包的元数据和控制信息,如软件包的名称、版本、依赖项、描述等。这些信息用于 dpkg 和包管理工具来管理和安装软件包。

  • 数据档案 (data):软件包的实际文件和目录结构,这些文件会被安装到系统上。这些文件通常包含在 data.tar.gzdata.tar.xz 文件中。

  • 预安装脚本 (preinst):DEBIAN/preinst 脚本包含在软件包安装之前要执行的命令,可以用于执行必要的准备工作。

  • 后安装脚本 (postinst):DEBIAN/postinst 脚本包含在软件包安装之后要执行的命令,可以用于执行清理工作、添加启动脚本等操作。

  • 预卸载脚本 (prerm):DEBIAN/prerm 脚本包含在软件包卸载之前要执行的命令,可以用于执行卸载前的清理操作。

  • 后卸载脚本 (postrm):DEBIAN/postrm 脚本包含在软件包卸载之后要执行的命令,可以用于执行卸载后的清理操作。

  • 配置文件 (conffiles):DEBIAN/conffiles 文件列出了软件包的配置文件,这些文件在软件包升级时需要特别处理,以确保用户的自定义配置不会丢失。

  • 文档文件 (doc):

  • 一些软件包可能包括文档文件,这些文件通常存储在 usr/share/doc 目录下。

注意:其中除了control是必须的,其余文件可以不创建,软件包的确切文件结构可以因软件包的性质和需求而有所不同,但上述是一个典型的.deb文件的一般结构。.deb 文件可以使用工具如 dpkg-deb 来创建或解包,以便查看其中的内容。

二、control文件的结构

Package: 软件包名称
Version: 软件包版本
Section: 软件包所属的部分
Priority: 软件包的优先级
Architecture: 软件包的体系结构
Essential: 是否是必要软件包
Depends: 软件包的依赖关系
Pre-Depends: 软件包的先决依赖
Recommends: 建议安装的软件包
Suggests: 建议但非必需的软件包
Conflicts: 与其他软件包的冲突
Provides: 软件包提供的功能
Replaces: 替代其他软件包
Maintainer: 维护者的信息
Description: 软件包的简短描述
软件包的详细描述(可以跨多行)

以下是这些字段的详细说明:

  • Package:软件包的名称。
  • Version:软件包的版本号。
  • Section:软件包所属的部分,通常是一个主题分类,如 net(网络)或 utils(实用工具)。
  • Priority:软件包的优先级,通常是 required(必需的), important(重要的), standard(标准的), optional(可选的), 或 extra(额外的)。
  • Architecture:软件包的体系结构,如 amd64(64位)或 i386(32位)。
  • Essential:指示软件包是否是系统所必需的。
  • Depends:软件包的运行时依赖关系,必须在安装软件包之前满足。
  • Pre-Depends:软件包的先决依赖,必须在安装软件包之前满足。
  • Recommends:建议但非必需的软件包,可以提高软件包的功能。
  • Suggests:建议但非必需的软件包,提供额外的功能。
  • Conflicts:与其他软件包存在冲突,不能同时安装。
  • Provides:软件包提供的功能,通常用于虚拟软件包。
  • Replaces:替代其他软件包,可以取代旧的软件包。
  • Maintainer:维护者的信息,包括姓名和电子邮件地址。
  • Description:软件包的简短描述和详细描述。详细描述可以跨多行。

control文件的写法示例:

Package: HelloWorld
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Depends:
Installed-Size: 512
Maintainer: http://www.baidu.com
Description: HelloWorld package

 三、deb打包示例

1.创建一个source文件夹  

 

DEBIAN文件中存放control文件和一些安装或卸载的执行脚本文件

opt文件中存放可执行文件的目录,在安装deb包的时候就会把可执行程序安装到系统的opt文件夹中

usr文件中存储可执行文件的依赖库或说明文档,在安装deb包的时候就会把依赖库或说明文档安装到指定的系统目录中

如上图所示,会把include中的文件覆盖到usr/include目录中,会把lib中的文件覆盖到/usr/lib目录中

 

标签:文件,流程,卸载,软件包,deb,安装,DEBIAN,打包
From: https://www.cnblogs.com/TechNomad/p/17805075.html

相关文章

  • 缺氧debu模式
    OxygenNotIncluded_Data(E:\SteamLibrary\steamapps\common\OxygenNotIncluded\OxygenNotIncluded_Data)文件夹下创建一个文本文档(.txt格式),将其命名为debug_enable.txt,创建完成后即可在游戏中使用debug的相关功能。Debug分析工具(即debug主界面,快捷键:Backspace)和即时建造模......
  • 宏基因组测序流程及其分析步骤
    测序样本信息:完成了70个根际土壤样本的宏基因组测序。数据预处理:使用KneadData工具进行质控和去宿主处理。利用Trimmomatic去除接头序列并进行质量过滤。使用Bowtie2构建宿主库和进行去宿主处理。从头组装:采用MEGAHIT工具对原始测序数据进行从头组装,生成contigs。......
  • vue打包后导致css属性值丢失的问题如何处理?
    当使用Vue进行打包时,有时可能会出现CSS属性值丢失的问题。这通常是由于CSS的压缩和优化过程导致的。下面是一些可能的解决方案:关闭CSS的压缩和优化:在Vue的配置文件(vue.config.js)中,你可以通过添加以下配置来关闭CSS的压缩和优化:module.exports={css:{extract:false,......
  • 企业erp流程图
     ......
  • linux 安装rabbitmq流程记录
    Linux系统:CentOS7.x(如果是CentOS8.x的话,需要修改下面两个环境版本号中的el7为el8)Erlang:erlang-22.3.4.12-1.el7.x86_64.rpmRabbitMQ:rabbitmq-server-3.8.13-1.el7.noarch.rpm1安装erlangLinux系统:CentOS7.x(如果是CentOS8.x的话,需要修改下面两个环境版本号中的el7为el8......
  • Java流程控制_05 Random
     指定区间: 97-100 ----》0-3  ----》r.nextInt(4)+97  1、RandomRandomr=newRandom();inta=r.nextInt(10);2、 ScannerScannersc=newScanner(System.in);System.out.println("");//打印一段提示信息intage=sc.nextInt();//等待键盘输入 ......
  • 思科认证 | 2023年CCIE考试流程、费用、考场攻略!
    CCIE认证是通往网络通信领域专家之路的重要一步。想要在职业生涯中取得更多的成就吗?CCIE认证是不可或缺的助力。今天就给你说说CCIE考试流程详解,费用及考场攻略。012023年CCIE考试流程详解一、填写考生报名表在报名时,你需要提供一些必要的信息,包括考生姓名、E-MAIL地址、中英文联......
  • LIMS系统源码:从样品登记到检验全面管理实验室流程
    LIMS可用于管理完整的实验程序,从样品登记到检验、校核、审核到最终批准报告,建立在过程质量控制的基础上,对检测流程进行有效全面的管理,对影响质量的人、机、料、法、环因素加以控制,同时为质量改进提供数据依据。LIMS实验室信息管理系统,功能包括以下几个模块:委托管理:样品登记、样品接......
  • vue本地能够访问图片,打包项目之后图片无法访问
    //template中<img:src="boxHerf"/>//jsletboxHerf=ref('/src/assets/images/contain.svg')上述写法本地能够正常访问图片,但是打包之后无法正常访问,将boxHerf换成下列写法即可解决letboxHerf=newURL('/src/assets/images/contain.svg',import.meta.url).hr......
  • 二、3、java基础之流程控制语句
    一、顺序结构根据代码的书写顺序进行执行代码二、选择结构      if选择语句:格式1:if(关系表达式){语句体;}格式2:if(关系表达式){语句体1;......