[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 下一页 ]


APT HOWTO (过时文档)
第 6 章 - 使用源码包


6.1 下载源码包

在自由软件的世界中,研究源代码甚至修正代码中的错误是很常见的。为了做到这一点,你需要下载程序的源代码。APT 系统提供了一种简单的方法来获取发行版中包含的许多程序的源代码,包括创建程序 .deb 包所需的所有文件。

Debian 源码的另一个常见用途是调整程序的较新版本,例如来自 unstable 发行版,以便在 stable 发行版中使用。针对 stable 发行版编译软件包将生成 .deb 包,其依赖项已调整为与此发行版中可用的软件包相匹配。

为了实现这一点,你的 /etc/apt/sources.list 中的 deb-src 条目应该指向 unstable。它也应该被启用(取消注释)。请参阅 /etc/apt/sources.list 文件,第 2.1 节

要下载源码包,你将使用以下命令

     $ apt-get source packagename

这将下载三个文件:一个 .orig.tar.gz,一个 .dsc 和一个 .diff.gz。对于专门为 Debian 制作的软件包,最后一个文件不会被下载,而第一个文件通常不会在名称中包含 "orig"

.dsc 文件被 dpkg-source 用于将源码包解包到 packagename-version 目录中。在每个下载的源码包中,都有一个 debian/ 目录,其中包含创建 .deb 包所需的文件。

要在下载时自动构建软件包,只需在命令行中添加 -b,就像这样

     $ apt-get -b source packagename

如果你决定在下载时不创建 .deb 包,你可以在之后通过运行以下命令来创建它

     $ dpkg-buildpackage -rfakeroot -uc -b

从下载后为软件包创建的目录中运行。要安装通过上述命令构建的软件包,必须直接使用软件包管理器,就像这样

     # dpkg -i file.deb

apt-getsource 方法与其他方法之间存在差异。source 方法可以由普通用户使用,而无需特殊的 root 权限。文件被下载到调用 apt-get source package 命令的目录中。


6.2 编译源码包所需的软件包

通常,需要特定的头文件和共享库才能编译源码包。所有源码包在其控制文件中都有一个名为 'Build-Depends:' 的字段,指示从源代码构建软件包所需的其他软件包。

APT 提供了一种下载这些软件包的简单方法。只需运行 apt-get build-dep package,其中 `package' 是你要构建的软件包的名称。例如

     # 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-cache show 命令有一个变体(参见 获取软件包信息,第 5 章),它将显示(除其他信息外)Build-Depends 行,其中列出了这些信息,Build-Depends 行,其中列出了这些信息

     # apt-cache showsrc package

[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 下一页 ]


APT HOWTO (过时文档)

1.8.11 - 2005 年 8 月

Gustavo Noronha Silva kov@debian.org