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: mysoftware
Version: 2016-02-26
Section: free
Priority: optional
Depends: libssl.0.0.so, libstdc++2.10-glibc2.2
Suggests: Openssl
Architecture: i386
Installed-Size: 66666
Maintainer: Simon @ newdivide7037#gmail.com
Provides: mysoftware
Description: just for test
(此处必须空一行再结束)

  

postinst文件:包含了软件在进行正常目录文件拷贝到系统后,所需要执行的配置工作。
prerm文件:软件卸载前需要执行的脚本。
postrm文件:软件卸载后需要执行的脚本。

制作deb包过程:

1. 制作如下目录及文件

所有目录及文件:

mydeb

|----DEBIAN

|-------control

|-------postinst

|-------postrm

|----boot

|----- mysoftware

在任意目录下创建如上所示的目录及文件

$ mkdir -p /home/mydeb                         # 在该目录下存放生成deb包的文件以及目录
$ mkdir -p /home/mydeb/DEBIAN #目录名必须大写
$ mkdir -p /home/mydeb/boot # 将文件安装到/boot目录下
$ touch /home/mydeb/DEBIAN/contro l # 必须要有该文件
$ touch /home/mydeb/DEBIAN/postinst # 软件安装完后,执行该Shell脚本
$ touch /home/mydeb/DEBIAN/postrm # 软件卸载后,执行该Shell脚本
$ touch /home/mydeb/boot/mysoftware # 所谓的“软件”程序,这里就只是一个空文件

 

control文件内容: 

Package: mysoftware       (软件名称,中间不能有空格)
Version: 1 (软件版本)
Section: free (软件类别)
Prioritt: optional (软件对于系统的重要性)
Architecture: amd64 (软件所支持的平台架构)
Maintainer: xxx <> (打包人和联系方式)
Description: mydeb (对软件的描述)
          (此处必须空一行再结束)

  

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

# !/bin/sh
echo "my deb" >/home/mydeb.log

  

postrm文件内容( 软件卸载后,执行该Shell脚本,一般作为清理收尾工作,必须以“#!/bin/sh”为首行,然后给该脚本赋予可执行权限:chmod +x postrm):

# !/bin/sh
rm -rf /home/mydeb.log

  

2. 完成第一步的制作目录及文件后可以给做好的mydeb目录进行打包成.deb包

$ dpkg -b mydeb mydeb.deb #第一个参数为将要打包的目录名,
#第二个参数为生成包的名称

  

现在完成了deb包的制作。

安装deb包:

$ dpkg -i mydeb.deb      # 将imysoftware复制到/boot目录下后,执行postinst
# postinst脚本在/home目录下生成一个含有"mysoftware"字符的mydeb.log文件

  

卸载deb包:

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

  

查看deb包是否安装:

$ dpkg -s   mysoftware      # 这里要卸载的包名为control文件Package字段所定义的 mysoftware

  

查看deb包文件内容:

$ dpkg   -c   mydeb.deb

  

查看当前目录某个deb包的信息:

$ dpkg --info mydeb.deb

  

解压deb包中所要安装的文件

$ dpkg -X   mydeb.deb   mydeb    # 第一个参数为所要解压的deb包,这里为 mydeb.deb
# 第二个参数为将deb包解压到指定的目录,这里为 mydeb

  

解压deb包中DEBIAN目录下的文件(至少包含control文件)

$ dpkg -e   mydeb.deb   mydeb/DEBIAN    # 第一个参数为所要解压的deb包,
# 这里为 mydeb.deb
# 第二个参数为将deb包解压到指定的目录,
# 这里为 mydeb/DEBIAN

  

dpkg制作deb包的更多相关文章

  1. 用dpkg命令制作deb包方法总结

    用dpkg命令制作deb包方法总结 如何制作Deb包和相应的软件仓库,其实这个很简单.这里推荐使用dpkg来进行deb包的创建.编辑和制作. 首先了解一下deb包的文件结构: deb 软件包里面的结构 ...

  2. ubuntu 制作deb 包

    ubuntu下打包制作deb安装包 http://www.th7.cn/system/lin/201406/61012.shtml   2014-06-22 20:16:45CSDN-yangbing ...

  3. 从源代码制作deb包的两种方法以及修改已有deb包(转载)

    From:http://yysfire.github.io/linux/%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%B6%E4%BD%9Cdeb%E5%8C% ...

  4. [deb]制作deb包

    转自:http://www.cnblogs.com/Genesis-007/p/5219960.html 查看系统安装了哪些deb包: dpkg -l 打包: dpkg -b dir result.d ...

  5. Ubuntu下制作deb包的方法详解

    1  认识deb包 1.1   认识deb包 deb是Unix系统(其实主要是Linux)下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组. 由于 Unix ...

  6. QT程序制作deb包并安装在应用程序菜单

    制作原理:打包:将QT制作的源程序(没有编译的)用debian压缩打包(这里是用脚本对源程序再编译)安装:将deb包中的源程序解压(默认解压到根目录)到规定系统文件中并编译(postinst脚本)卸载 ...

  7. 【linux】制作deb包方法 **

    目录 前言 概念 ** 创建自己的deb包 文件源码 前言 制作deb的方式很多 使用 dpkg-deb 方式 使用 checkinstall 方式 使用 dh_make 方式 修改原有的 deb 包 ...

  8. dpkg卸载deb包

    一.背景: 一个脚本安装mysql,结果提示缺少依赖库,安装失败. 二.查询: 此时查询deb文件已经安装的情况,得到这个结果: root@debian:~# dpkg -l |grep mysql- ...

  9. deb包制作(转)

    deb 包已被广泛应用但是也在不断的更新,这里介绍Ubuntu deb包安装设置使用,帮助大家安装更新Ubuntu deb包系统.制作Ubuntu deb包的三种方法 | Sean's Blog [转 ...

随机推荐

  1. 提高PHP编码的一些技巧

    1.不要使用相对路径 例如 require_once('../../lib/some_class.php'); 该方法有很多缺点: 1)它首先查找指定的php包含路径, 然后查找当前目录 2)如果该脚 ...

  2. IDEA+SpringMVC+Spring+Mybatis

    详细参照: SSM框架——详细整合教程(Spring+SpringMVC+MyBatis) 这里只说一下注意的地方: 1.上面那篇是用的eclipse, 但IDEA的目录结构和eclipse稍有不同. ...

  3. HDUOJ-----1066Last non-zero Digit in N!

    Last non-zero Digit in N! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  4. ubuntu修改固定ip

    1.vi /etc/network/interfasces,添加红框内的内容:

  5. Win8.1设置ftp服务器并设定用户操作权限的详细教程

    http://wenku.baidu.com/link?url=VTDLnDa_yfQN9OldjVnYsOBf7UdIj76QjaLDyHP-I0A6iFEfzB8EyBf9uztwm2JDXlFL ...

  6. FreeBSD搭建SVN服务器

    我最喜欢使用的OS就是FreeBSD,而且现在刚好有一台FreeBSD服务器,所以我想把我的SVN服务器迁移到FreeBSD上,再配合hudson和ant就可以自动编译了. 第一步:安装svn: 在安 ...

  7. CSS中overflow:scroll怎么设置只上下滚动而不左右滚动

    CSS中"overflow:scroll"默认是左右,上下都滚动.怎么设置只上下滚动而不左右滚动,下面有个不错的解决方法 CSS中"overflow:scroll&quo ...

  8. Diamond 3.5简易教程(二)------软件的简单使用

    二.软件的简单使用 工程建立后我们就可以进行程序的编写添加了. 选择左下角file list 选项卡 这里主要是工程的信息. 在input files 上右键弹出选项addànew file... 在 ...

  9. 枚举操作的常用方法,包括获得枚举的value,name,description

    public enum SendInfoStateEnum    {   [Description("等待提交")]        等待提交 = 1, [Description(& ...

  10. Ubantu 查看系统资源占用

    1  top 查看ubuntu的资源占用的命令为$: top    说明:top命令就可以查看内存,cpu和进程了,很方便 top: 主要参数 d:指定更新的间隔,以秒计算. q:没有任何延迟的更新. ...