打包Linux的deb包
需事先准备
软件打包依赖
1. sudo apt update
2.sudo apt-get install dh-make build-essential devscripts debhelper
3.
所需打包的源码包``
-
准备打包目录
创建一个构建 deb 包的目录,目录以 包名-版本号 命名,如
test@test-pc:~/桌面$ mkdir KylinSunScan
-
构建规范的软件目录
构建一个规范的软件目录,用来按规则放置软件的各类文件,完整的目录结 构为
3.创建.desktop 文件
内容实例如下,按需添加
属性解释
[Desktop Entry] #文件头
Name #英文名称
Name[zh_CN]#中文名称
Comment#软件英文注解
Comment[zh_CN]#软件中文注解
Exec#软件运行文件绝对路径
Icon#图标名
Terminal#是否使用终端
Type#启动器类型
Categories#应用类型
4.创建 DEBIAN 目录( control 、rules、postinst 可参考复用,也可新增打包脚本,主要改这些)
对应架构操作系统输入 dh_make --createorig -s 自动构建,往里加逻辑
``control:
位置: debian/control
作用: 这个文件是Debian包元数据的一部分,它定义了软件包的名称、版本、依赖关系、描述以及与其他包的关系等信息。通过这个文件,系统能够了解到如何处理该软件包及其依赖。
rules:
位置: debian/rules
作用: 这是一个Makefile脚本,用于定义如何从源代码构建Debian软件包的具体步骤。它包含了编译、链接、安装等命令。开发者可以在这个脚本中添加自定义的构建步骤或参数,以满足特定的构建需求。
postinst:
位置: debian/.postinst
作用: 这是一个安装后脚本(Post-installation script),当软件包被安装到系统上之后自动执行。它通常用于执行一些需要在软件包安装完成后进行的配置工作,比如创建系统用户、修改权限设置、更新系统数据库或者启动服务等。此脚本需要可执行权限,并且应该使用dh_installdeb命令注册到软件包中。``
prerm:
位置: debian/.prerm
作用: 这是一个预卸载脚本(Pre-removal script),在软件包被卸载之前运行。它的主要任务是执行所有必要的清理操作,以便软件包可以安全地从系统中移除。这可能包括停止相关服务、清理临时文件或备份配置文件等操作,为卸载过程做准备。
postrm:
位置: debian/.postrm
作用: 卸载后脚本(Post-removal script),在软件包已经被完全卸载后执行。此脚本用于完成那些必须在软件包彻底消失于系统之后才能进行的操作,例如删除不再需要的系统用户、清理残留的目录结构或是从系统数据库中注销条目等。
config:
虽然直接提及config脚本不如上述几个常见,但在某些情况下,软件包可能会提供一个config或config.sub、config.guess等文件来辅助配置检测或生成适用于目标系统的配置文件。这些脚本或工具帮助确定编译时的系统特性,确保软件能够正确编译和运行在不同的硬件架构和操作系统环境中。
copyright:
位置: debian/copyright
作用: 虽不直接参与构建或安装过程,但此文件对于遵守开源许可协议至关重要。它包含了软件包内所有组件的版权信息和许可声明,确保用户能够清楚了解软件的授权状况,对于维护开源生态的合规性极为重要。
5.开始构建软件包 (最终结晶产物 deb包)
使用命令进行打包
推荐使用 dpkg-buildpackage -rfakeroot -d -us -uc
可以使用: debuild -i -us -uc -b
6.验证
安装deb,检查功能是否正常 有两种方式
1.终端安装命令: sudo dpkg - i 软件名.deb
输入管理员密码安装
2.界面双击deb包进行安装即可
部分包需要重启电脑,才会生效,本次使用的机器是 x86的银河麒麟打包,用相同机器可打包 其他x86架构的系统包