dpkg-buildpackage制作deb软件包

简介

    说白了,deb包就是debian Linux下的一个软件包格式,从文件的角度来看,deb包就是deb格式的归档文件而已。

    其实我已经接触debian系列的Linux好久了,但是说来也惭愧,我都没有自己尝试去手动打一个包。机缘巧合的是,我的组长R女士让我做一个系统的帮助手册软件包,我当时就开开心心的揽下了这个活,我是一个做事喜欢理由或者借口的人,如果上面两者都没有,那么我做事会非常消极。得亏这次不仅仅能作为任务来交差,还能满足一下自己对deb打包的好奇心。

思路(想看打包方法的,直接跳过该部分)

    首先,这个包是一个软件,那我还是最好遵循软件工程的原则来做这个软件包。

 需求:1)从【开始菜单】进入在线帮助反馈,可以在网页上打开帮助页面;

            2)F1快捷键同样可以调用浏览器打开帮助页面;

            3)帮助页面的内容为操作系统的用户帮助信息。

            4)最终该安装包的名字fakeroot_01-01_amd64.deb。

分析:


软件设计:

                                        |开始菜单帮助入口|        |F1按键|

                                                      |                            |

                                                      |                  |Gnome应用程序keybinding|

                                                      |                        |gnome-help|

                                                      |                             |

                                      | ---              帮助应用程序                -------        |

编码:

    关于这个软件的编码量基本集中在网页部分,就不具体说明了。

    另外还有少量的脚本需要编写。

测试:

    

    黑盒>

    1) 正常安装;

    2) 按下F1,firefox浏览器会打开一个help-doc.html网页;

    3) 在【开始菜单】入口中,点击【在线帮助与反馈】,达到和上面一样的效果;

    4) 最后简单对帮助反馈页面的内容进行一个简单的测试,需要网页能够达到预计的效果。

    5) 正常卸载。

发布与提交

    在测试正常的情况下,将软件包提交构建组构建,以提供进一步的测试。

打包过程

    查阅相关文档,确保源码包中必须具备的基本目录结构,目录结构如下>

                       |-- DEBIAN
                            |   |-- control   #包含主要的软件版本信息和维护者信息

                            |   |--changelog    #软件包的修改记录,它是有规范的,下面会给出
                            |   |--rules   #该文件及其重要,里面包含了打包时执行的动作  
                            |   |-- postinst  #该脚本为安装软件包时执行的处理脚本
                             |   |-- postrm   #该脚本为卸载软件包时执行的处理脚本
                                     |   |-- compat  #兼容性文件照者其它源码包中的内容抄就ok了

                       |--usr

                          |--资源文件

1)步骤一 

假设当前在~下,创建基本目录结构

~ $  mkdir fakeroot-1.11.0

~$   cd fakeroot-1.11.0

~/fakeroot-1.11.0$   mkdir  fakeroot      # you can use any name you like , actually , I recommend you to use a name relevant to your debian software

~/fakeroot-1.11.0$  mkdir  debian     # important control files should be in it

2)步骤二 

在debian目录下创建控制信息

control文件

source: fakeroot     #源码包名
section: devel   #工具类
Priority: optional  #优先级
Maintainer:  #维护者邮箱
Standards-Version: 1.11.0   #版本号

Package:fakeroot   #这个指的是编译生成的二进制包名
Architecture: any   #软件包适用的系统架构
Depends:  ***(oprator version)
Description : #给出你对这个软件的描述

postinst文件

#!/bin/sh 

    code block      #do what you want to do on the post stage of excuting `dpkg -i fakeroot`

postrm文件

#!/bin/sh
   
   code block       # do what you want to do on the post stage of excuting 'dpkg -r fakeroot**'

rules文件

install: build阶段

rm -r $(CURDIR)/debian/fakeroot*          #在build过程中将fakeroot相关的中间文件删除
mkdir -p $(CURDIR)/debian/fakeroot
cp -r $(CURDIR) /fakeroot/$(DEB_HOST_ARCH)/usr  $(CURDIR)/debian/fakeroot/    #将usr下的资源文件拷贝到资源文件下

3)步骤三

创建资源文件,这一部分是你实现软件的核心部分文件了

在usr目录下创建资源文件

 usr/share/applications          usr/share/cdos-help          usr/share/doc 

4) 步骤四

~/fakeroot-1.11.0 $ dpkg-buildpackage -fakeroot -uc -us

    前面的步骤如果全部执行成功的话,那么执行上面的命令的话,会在上一层目录生成fakeroot-1.11.0_amd64.deb。

到这一步,你的二进制包文件已经创建成功了。

总结

    经过以上的步骤,你想要创建的二进制包已经创建成功了。此时,你可以使用dpkg命令来安装和卸载它了。说到这里,大概已经明白如何来创建二进制包的结构了吧。看千遍,不如自己动手做一遍,动手来做一做吧。

你可能感兴趣的:(dpkg,deb打包)