Debian(Ubuntu)系统Deb包打包说明

Debian(Ubuntu)系统Deb包打包说明

什么是Deb包

DEB是Debian软件包格式的文件扩展名,跟Debian的命名一样,DEB也是因Debra Murdock而得名,她是Debian创始人Ian Murdock的太太。

deb包在Linux操作系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。

Ubuntu dpkg命令

dpkg 命令是Debian Linux系统用来安装、删除、构建和管理Debian的软件包的实用工具。

如已有deb安装包(例如:object.deb) dpkg命令常用格式如下:

用法: dpkg [<选项>...] <命令> sample.deb

命令列表:

  • -i | --install

    安装软件包

  • -L |--listfiles

    查看软件包安装的所有文件

  • -s | --status

    查看软件包的详细信息

  • -r | --remove

    卸载软件包

  • c | --contents

    查看软件包的文件结构

  • -P | --print-avail

    显示可用的版本信息详情

    ...

Deb包的文件结构

包括DEBIAN和软件具体安装目录(如 /etc,/usr,/opt,/tmp 等)

deb包本身由三部分组成

组成 详细
数据包 包含实际安装的程序数据,文件名为"data.tar.XXX"
安装信息及控制包 包含deb的安装说明,标识,脚本等,文件名为"control.tar.gz"
二进制数据 包含文件头等信息,需要特殊软件才可以查看

DEBIAN 目录包含的文件

  • conffiles
  • contorl
  • copyright
  • changelog
  • md5sums
  • postinst(postinstallation)
  • postrm(postremove)
  • preinst(preinstallation)
  • prerm(preremove)

下面逐一阐述。

conffiles

配置文件清单列表

control

该文件主要描述软件包的名称(Package),版本(Version),Installed-Size (大小),Maintainer (打包人和联系方式),以及描述等。

字段 说明 样例
Package 名称 metrics-server,中间不能有空格
Version 版本 1.1.0 必须数字开头
Description 说明
Vendor 供应商 changkong
Maintainer 软件包维护人员 changkong changkong@163.com
Section 软件类别 default,utils, net, mail, text, x11
Priority 软件包对系统的重要程度 required, standard, optional, extra等;
Essential 是否是系统最基本的软件包 yes/no,若为yes,则不允许卸载(除非强制性卸载)
Architecture 软件所支持的平台架构 i386, amd64, m68k, sparc, alpha, mips64le,arm64,powerpc等
Installed-Size 软件包大小 118769
Depends 软件所依赖的其他软件包和库文件 若依赖多个软件包和库文件,采用逗号隔开
Pre-Depends 软件安装前必须安装、配置依赖性的软件包和库文件 常用于必须的预运行脚本需求
Recommends 推荐安装的其他软件包和库文件
Suggests 建议安装的其他软件包和库文件
License 版权信息 unknown
Homepage 网站信息 https://www.csdn.net

版权相关信息文件,非必须

changelog

版本变更记录文件 ,非必须

md5sums

所有文件清单的md5校验码信息,非必须

preinst

在Deb包文件解包之前(即软件安装前),将会运行该脚本。可以停止作用于待升级软件包的服务,直到软件包安装或升级完成

postinst

负责完成安装包时的配置工作。如新安装或升级的软件重启服务。软件安装完后,执行该Shell脚本,一般用来配置软件执行环境,必须以"#!/bin/sh"为首行。

例:

复制代码
#!/bin/sh
if [ "$1" = "configure" ]; then
/Applications/MobileLog.app/MobileLog -install
/bin/launchctl load -wF /System/Library/LaunchDaemons/com.iXtension.MobileLogDaemon.plist 
fi
prerm

该脚本负责停止与软件包相关联的daemon服务。它在删除软件包关联文件之前执行。

复制代码
#!/bin/sh
if [[ $1 == remove ]]; then
/Applications/MobileLog.app/MobileLog -uninstall
/bin/launchctl unload -wF /System/Library/LaunchDaemons/com.iXtension.MobileLogDaemon.plist 
fi
postrm

负责修改软件包链接或文件关联,或删除由它创建的文件。软件卸载后,执行该Shell脚本,一般作为清理收尾工作,必须以"#!/bin/sh"为首行。

复制代码
#!/bin/sh
rm -rf /root/mydeb.log

Deb文件打包

按照上述文件组织打包的文件目录和打包配置文件,比如目录 ${FILE_DIR} 中

复制代码
dpkg-deb -b ${FILE_DIR} ${FILE_NAME}.deb
相关推荐
wanhengidc14 小时前
云真机和云手机的区别
运维·服务器·游戏·智能手机·云计算
佐杰14 小时前
Jenkins是什么
运维·jenkins
zzzsde14 小时前
【Linux】权限(1):初识权限与使用理解
linux·运维·服务器
正在走向自律16 小时前
影刀RPA完全指南:从零入门到自动化高手(2/10)
运维·人工智能·自动化·rpa·影刀·rpa自动化工具·ai结合影刀
乌萨奇也要立志学C++16 小时前
【Linux】进程间通信(一)匿名管道原理剖析与进程池手动实现全流程
linux·运维·服务器
ManageEngineITSM20 小时前
技术的秩序:IT资产与配置管理的现代重构
大数据·运维·数据库·重构·工单系统
梦昼初DawnDream1 天前
linux安全基线
linux·运维·安全
Broken Arrows1 天前
在Linux系统中,top命令的显示参数详解
linux·运维·服务器
老黄编程1 天前
02-ubuntu24.04证书体系架构及证书有关配置文件、工具详细介绍
ubuntu·数字证书
catoop1 天前
在 Windows 中基于 WSL 子系统 Ubuntu 安装配置 conda 示例
windows·ubuntu·conda