快速业务通道

deb 源代码包新格式

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-18

本文为读者 tumashu 在 man dpkg-source 过程中所作的阅读笔记,其中包含 deb 源代码新格式的一些介绍,也许有的朋友会感兴趣.

一.新格式的优点

支持 bzip2、lzma (估计就是 7z 格式)、gzip 压缩格式
支持多个上游 tarballs
支持包含二进制文件,旧格式使用 diff 文件(diff.gz)来存储打包过程中对源代码的改变,而 diff 文件是处理文本文件的,如果想添加一个二进制文件(比如 png 图标),就需要使用 uuencode 把二进制文件转换为文本文件,比较麻烦
不需要 strip debian 目录而重新打包上游 tarball(debian 目录在 deb 源代码包解压缩的时候自动被.debian.tar.{gz,bz2,lzma}里面的内容取代)
Debian-specific 的改变现在不是保存在单一的 .diff.gz 文件里面而是保存在 debian/patches/ 下的多个 patch 文件里.这种处理方式和 quilt 的处理方式兼容但不需要使用 quilt, dpkg-source 可以处理所有的事情,它在解压缩过程中使用 patch 文件,在构建二进制包的过程中更新 patch series
NMU workflow is now really: unpack, hack, rebuild (for all 3.0 (quilt) packages).
二.新格式的种类

Format:1.0
Format:2.0
Format:3.0 (native)
Format:3.0 (quilt)
Format:3.0 (git)
Format:3.0 (bzr)
三.Format:1.0 格式介绍

这个是原来的格式:一个 .dsc 文件,一个 .orig.tar.gz 文件,一个 .diff.gz 文件

四.Format:2.0 格式介绍

这个格式不建议广泛使用,是个过渡格式

五.Format:3.0 (native) 格式介绍

这个格式是 Format:1.0 的扩展,可以支持多种压缩方式{gz,bz2,lzma}

六.Format:3.0 (quilt) 格式介绍

这个格式可能被 debian 的下一个版本采用,它是 Format:2.0 的扩展,它补丁的处理方式和 quilt 兼容,如此命名

源代码包的组成:

一个 .orig.tar.{gz,bz2,lzma}压缩包,这个包是上游源代码更名后得到的
一个 .debian.tar.{gz,bz2,lzma}压缩包,这个包包含了 debian 化的所有更改
零个或者多个 .orig-<component>.tar.{gz,bz2,lzma},比如:.orig-hello.tar.{gz,bz2,lzma} 或 .orig-world.tar.{gz,bz2,lzma}.这是为了支持多个上游 tarball
一个 .dsc 文件
源代码包的解压缩:

orig 包解压缩,产生一个目录,比如:helloworld_0.1.1.orig.tar.gz 就会生成 helloworld-0.1.1 这个包含上游源代码的目录
所有 orig-<component> 解压缩,产生一个目录,比如:helloworld_0.1.1.orig-toy.tar.gz 就会生成 helloworld-0.1.1/toy/ 目录,这个目录包含 helloworld_0.1.1.orig-toy.tar.gz 里面所有的内容,原来存在的 helloworld-0.1.1/toy/ 将被取代 (man dpkg-source 这一段没有看懂,可能理解有误.)
debian 包解压缩,生成 debian 目录,比如:helloworld_0.1.1.debian.tar.gz 就会生成 helloworld-0.1.1/debian/ 目录,原来存在的这个目录在这个过程中将被删除….注意:debian.tar.{gz,bz2,lzma}里面包含一个 debian 目录,它也可以包含二进制文件.
应用补丁:文件 debian/patches/debian.series 或者 debian/patches/series 里面罗列的补丁.补丁是 patch -p1 的.补丁也可以删除文件.如果在解压缩过程中应用了某些补丁,那么 debian/patch/.dpkg-source-applied 文件会记录它们.
和 quilt 的默认相似,这里使用补丁也可以删除文件
源代码包的构建:

更新 debian-changes-<version> 补丁:当前目录中所有的源代码包 (orig 包,component 包) 都会解压缩到一个临时目录中,然后 debian 目录也拷贝到这个临时目录打上除 debian-changes-<version> 补丁外的所有补丁,比较临时目录和源代码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号