顶层目录包括两个子目录,dists/和pool/,pool是包文件存放的目录,dists中包含一些分制(stable、testing、unstable目录),这里ubuntu下的文件目录结构和debian 是不太一样的。dists/stable 下包含三个子目录,main、contrib、non-free。在这些子目录中,每个里面都有一个source 目录 和多个支持不同体系结构(如binary-i386、binary-amd64)的目录。
main 、contrib 、non-free是根据不同的用户使用权限来分类的。
stable 、testing 、unstable 分别是软件的几个不同的阶段来分类。
stable阶段的软件主要就是稳定,一般作为企业级的应用,当然如果对于稳定性要求比较高的个人用户,也可以使用,但是,这个阶段的软件通常比较旧。
testing阶段,顾名思义,是测试阶段的软件,处在这个阶段的软件,都是测试版的软件,但是它们已经通过了初步的测试,具有一定的稳定性,可以进行使用,这里的软件,一般比较新。
unstable阶段的软件,是最新的软件,当然也是最不稳定的,如果只是玩的话,可以在这里面找。
对于debian包的结构进行了调研,首先谈谈debian包的管理机制
分为两层:
对软件包文件操作和对包中文件的操作。
前者通过apt和dselect完成,这两个属于高级包管理工具
后者通过dpkg完成,对单个的deb包进行处理。
对于debian包本身,它分为两类,source包和binary包
在binary 包中包含两部分文件,一部分是用户安装的,另一部分是为包提供控制信息的文件,用于包的安装和删除。
debian包内部是:
一个”debian-binary”文件,现在它的内容只包含一行”2.0″。
Control.tar.gz文件,它是一个用gzip压缩的打包存档文件,它包括这个包的控制信息。
control.tar.gz中包含control文件,md5sums验证文件,和一些诸如preinst, postinst, prerm, 和 postrm 脚本的信息
Data.tar 它包含一个打包的存档文件,这个存档文件中是一个文件系统,这个tar文件会被再次压缩。