快速制作deb包

欢迎转载请注明出处:海漩涡

http://blog.csdn.net/tanhuifang520


deb包制作过程


一、创建打包软件文件夹


    mkdir deb_build_test




二、在deb_build_test中创建存放程序的文件夹结构
 
    cd deb_build_test

    mkdir /home/txh/test_deb -p   #这个目录是安装deb包后数据存放的目录结构




三、在deb_build_test中创建DEBIAN文件夹


    cd deb_build_test

    mkdir DEBIAN   




四、在DEBIAN中创建control文件
    
    cd DEBIAN

    touch control


    在control中输入以下内容:


#相关内容(注意结尾必须空一行):
Package: soft         #(程序名称)
Version: 1.0.1        #(版本)
Section: utils        #(程序类别)
Architecture: amd64   #(程序格式)
Installed-Size: 512   #(大小)
Maintainer: your <[email protected]>   #(打包人和联系方式)
Description: soft package                 #(程序说明)
                                          #(此处必须空一行再结束)




五、DEBIAN中需创建以下脚本文件


    preinst:在Deb包文件解包之前,将会运行该脚本。
    
    postinst:该脚本的主要任务是完成安装包时的配置工作。
    
    prerm:该脚本负责停止与软件包相关联的daemon服务。它在删除软件包关联文件之前执行。


    postrm:该脚本负责修改软件包链接或文件关联,或删除由它创建的文件。




六、生成deb_build_test.deb


    dpkg-deb --build deb_build_test deb_build_test.deb




====================================================================================




deb包相关命令:


1、给mydeb目录打包
dpkg -b mydeb mydeb-1.deb 


2、安装deb包
dpkg -i   mydeb-1.deb


3、卸载deb包
dpkg -r   my-deb


4、查看deb包是否安装
dpkg -s   my-deb


5、查看deb包文件内容
dpkg   -c   mydeb-1.deb


6、查看当前目录某个deb包的信息
dpkg --info mydeb-1.deb


7、解压deb包中所要安装的文件
dpkg -x   mydeb-1.deb   mydeb-1 


8、解压deb包中DEBIAN目录下的文件
dpkg -e   mydeb-1.deb   mydeb-1/DEBIAN




----------------------------------------------------------------------------------------------


制作deb包相关知识:


如何制作Deb包和相应的软件仓库,其实这个很简单。这里推荐使用dpkg来进行deb包的创建、编辑和制作。
首先了解一下deb包的文件结构:
deb 软件包里面的结构:它具有DEBIAN和软件具体安装目录(如etc, usr, opt, tmp等)。在DEBIAN目录中起码具有control文件,其次还可能具有postinst(postinstallation)、postrm(postremove)、preinst(preinstallation)、prerm(preremove)、copyright (版权)、changlog (修订记录)和conffiles等。
control: 这个文件主要描述软件包的名称(Package),版本(Version)以及描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。同时为了能将软件包进行充分的管理,可能还具有以下字段:
Section: 这个字段申明软件的类别,常见的有`utils’, `net’, `mail’, `text’, `x11′ 等;
Priority: 这个字段申明软件对于系统的重要程度,如`required’, `standard’, `optional’, `extra’ 等;
Essential: 这个字段申明是否是系统最基本的软件包(选项为yes/no),如果是的话,这就表明该软件是维持系统稳定和正常运行的软件包,不允许任何形式的卸载(除非进行强制性的卸载)
Architecture:申明软件包结构,如基于`i386′, ‘amd64’,`m68k’, `sparc’, `alpha’, `powerpc’ 等;
Source: 软件包的源代码名称;
Depends: 软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之间采用逗号隔开;
Pre-Depends: 软件安装前必须安装、配置依赖性的软件包和库文件,它常常用于必须的预运行脚本需求;
Recommends: 这个字段表明推荐的安装的其他软件包和库文件;
Suggests: 建议安装的其他软件包和库文件。


对于control,这里有一个完整的例子:
Package: bioinfoserv-arb
Version: 2007_14_08
Section: BioInfoServ
Priority: optional
Depends: bioinfoserv-base-directories (>= 1.0-1), xviewg (>= 3.2p1.4), xfig (>= 1:3), libstdc++2.10-glibc2.2
Suggests: fig2ps
Architecture: i386
Installed-Size: 26104
Maintainer: Mingwei Liu <>
Provides: bioinfoserv-arb
Description: The ARB software is a graphically oriented package comprising various tools for sequence database handling and data analysis.
If you want to print your graphs you probably need to install the suggested fig2ps package.preinst: 这个文件是软件安装前所要进行的工作,工作执行会依据其中脚本进行;
postinst这个文件包含了软件在进行正常目录文件拷贝到系统后,所需要执行的配置工作。
prerm :软件卸载前需要执行的脚本
postrm: 软件卸载后需要执行的脚本现在来看看如何修订一个已有的deb包软件






猜你喜欢

转载自blog.csdn.net/tanhuifang520/article/details/73106084