deb包制作方法

本文详细介绍如何在Linux环境下创建DEB格式的软件包,包括准备目录结构、编写必要的脚本文件、设置依赖关系及使用dpkg工具进行打包与安装等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设我的操作是在/tmp目录下完成的,步骤如下:

mkdir -p /tmp/work

cd /tmp/work
mkdir DEBIAN

vi DEBIAN/control
'''
Package:thinpc
Version:3.1.2
Section:utils
Priority: optional
Architecture:i386
Maintainer:yangys<yangys@cloud-times.com>
Description:ctos rdp connection

'''

参数说明:

Source: 源码包的名称

Section: 表示软件分类

Priority: extra代表优先级,一般可以写optional或者extra。其中optional是普通包最常用的,extra的优先级相比则还要再低一些

Maintainer: 软件包维护者格式为:First Last <youremail@example.com>

Build-Depends: 编译依赖关系,也就是说要安装哪些软件包才可以编译这个程序

Standards-Version: 表示使用的Debian Policy版本;


Package: deb包的名字;

Architecture: 要编译的硬件构架any代表所有构架all代表这个软件包是跨平台的,比如说同python程序文件可以在所有平台上跑我们打包的是python包,把any改成all如果打一个C程序的包,则用any

Depends: ${shlibs:Depends}, ${misc:Depends}这是deb包的依赖关系。${shlibs:Depends}, ${misc:Depends} 是两个变量,表示debhelper自动检测依赖这个例子,我们还要添加python, python-gtk2, python-jswebkit, python-webkit, mimetex, wv。添加完的Depends是这样的:Depends: ${shlibs:Depends}, ${misc:Depends}, python, python-gtk2, python-jswebkit, python-webkit, mimetex, wv

Description: 简单的描述要在60个字符以内,要用英语

vi DEBIAN/preinst
(postinst文件内容( 软件安装完后,执行该Shell脚本,一般用来配置软件执行环境,必须以“#!/bin/sh”为首行,然后给该脚本赋予可执行权限:chmod +x postinst))
'''
#!/bin/sh


dpkg-divert  --divert /usr/share/ct-software-center/shell/ct-software-center.sh.org  --rename  /usr/share/ct-software-center/shell/ct-software-center.sh
'''
vi DEBIAN/postrm
(postrm文件内容( 软件卸载后,执行该Shell脚本,一般作为清理收尾工作,必须以“#!/bin/sh”为首行,然后给该脚本赋予可执行权限:chmod +x postrm))
'''
#!/bin/sh
echo $0 $@

PACKAGE=$DPKG_MAINTSCRIPT_PACKAGE
#revert all diverted files
case "$1" in
        "remove")  #revert all diverted files
                dpkg-divert --list $PACKAGE | awk '{print $3}' | while read DIVERTFILE
                do
                        dpkg-divert --remove --rename ${DIVERTFILE}
                done
                ;;
        "upgrade")
                ;;
        *)
                ;;
esac
'''

mkdir -p data/root/.config (目录根据实际要做的deb包的文件所在目录一致)
cd data/root/.config
cp /tmp/ctsc.ini(要做成deb包的文件name) ./
cd /tmp
dpkg-deb -Z gzip -b work/ ct-fix.deb   #ct-fix.deb为要生成的deb包name)


小番外,dpkg命令汇总:
安装deb包:
# dpkg -i   mydeb-1.deb      # 将initrd-vstools.img复制到/boot目录下后,执行postinst,
                                              # postinst脚本在/root目录下生成一个含有"my deb"字符的mydeb.log文件

卸载deb包:
# dpkg -r   my-deb       # 这里要卸载的包名为control文件Package字段所定义的 my-deb 。
                                     # 将/boot目录下initrd-vstools.img删除后,执行posrm,
                                     # postrm脚本将/root目录下的mydeb.log文件删除

查看deb包是否安装:
# dpkg -s   my-deb      # 这里要卸载的包名为control文件Package字段所定义的 my-deb
查看deb包文件内容:
# dpkg   -c   mydeb-1.deb
查看当前目录某个deb包的信息:
# dpkg --info mydeb-1.deb
解压deb包中所要安装的文件
# dpkg -x   mydeb-1.deb   mydeb-1    # 第一个参数为所要解压的deb包,这里为 mydeb-1.deb
                                                              # 第二个参数为将deb包解压到指定的目录,这里为 mydeb-1

解压deb包中DEBIAN目录下的文件(至少包含control文件)
# dpkg -e   mydeb-1.deb   mydeb-1/DEBIAN    # 第一个参数为所要解压的deb包,
                                                                             # 这里为 mydeb-1.deb
                                                                             # 第二个参数为将deb包解压到指定的目录,
                                                                             # 这里为 mydeb-1/DEBIAN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值