APT HOWTO
第六章 源码包操作
6.1 下载源码包
==============
在自由软件的世界里,经常需要学习源码或为程序除错,所以你需要下载它们。APT提供了一套简便的方法帮你获得发布版中众多程序的源代码以及创建一个.debs所需的所有文件。
Debian源码的另一个普遍用途是将unstable发布版的新版程序进行改写以供别的发布版使用,例如,从stable发布版外引入新的软件包,需要重新生成.debs将它在原发布版中的关联关系迁移到新的发布版。
完成这些工作,/etc/apt/sources.list文件中deb-src所指引用镜像源应该是unstable,别忘了将行首的注释符去掉。详情参阅 2.1/etc/apt/sources.list文件。
用下面的命令下载源码包:
apt-get source packagename
通常会下载三个文件:a .orig.tar.gz, a .dsc and a .diff.gz。对于Debian专用的软件包,最后一个文件不会下载,第一个文件的文件名中没有“orig”项。
dpkg-source读取.dsc文件信息,将源码包解包到packagename-version目录,下载下来的源码包中有一个debian/目录,里面是创建.deb包所需的文件。
想要下载的源码包自动编译成软件包,只需在命令行中加上-b,如下:
apt-get -b source packagename
如果你不打算立即创建.deb包,你可以运行如下命令,以后再创建它。
dpkg-buildpackage -rfakeroot -uc -b
请在下载包所在的目录中运行上面的命令。
apt-get的source命令与它的其它命令有所不同,普通用户权限就可以运行source命令,指定文件被下载到用户调用apt-source package命令时所处的目录中。
6.2 编译源码包所需的软件包
==========================
通常,编译源码包时要用到某些头文件和共享库,所有的源码包的管理文件(control file)中都有一个域“Build-Depends:”,域中指出了编译该源码包需要哪些附加包。
APT提供了一个简单的方法下载这些附加包,你只需运行apt-get build-dep package,其中package就是你打算编译的源码包名称。见下例:
[root]@[/] # apt-get build-dep gmc
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
libgpmg1-dev
0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Need to get 1069kB of archives. After unpacking 3514kB will be used.
Do you want to continue? [Y/n]
这些用于gmc正确编译指定源码包的附加包将会被安装。注意这个命令不能用来搜索某个软件的源码包,你得另外运行apt-get source下载源码包。
====================================
APT HOWTO
1.8.2 - November 2002
Gustavo Noronha Silva kov@debian.org
中文翻译:LYOO iamlyoo@163.com
2003/01/26
====================================