以tree实用程序为例,介绍Ubuntu中如何管理源码包,包括查询,获取,编译源码包,直至安装。 1.准备 在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项 使用如下命令获取tree源码包的详细信息: sudo apt-cache showsrc tree 这用来查询当前镜像站点中是否有该源码包。 2.获取源文件 源码包中通常包含3个文件,分别以dsc,orig.tar.gz和diff.gz为后缀名。使用apt-get source命令来获取源码包,它会将源码包下载到用户当前目录,并在命令执行过程中,调用dpkg-source命令,根据dsc文件中的信息,将源码包解压到同名目录中,应用程序的源代码就在这里面。 sudo apt-get source tree 要强调的是,在下载源码包前,必须确保安装了dpkg-dev(执行”apt-get install dpkg-dev”来安装),否则,只会下载源码包的3个文件,但不会解压缩源码包。当然你也可以自己用dpkg-source命令去解压缩源码包: dpkg-source -x tree-1.5.1.2.dsc 3.获取依赖文件 在编译源码包前,需要安装具有依赖关系的相关软件包。使用apt-get build-dep命令可以主动获取并安装所有相关的软件包。 sudo apt-get build-dep tree 4.编译源码包 首先进入源码所在目录,使用dpkg-buildpackage命令来编译源码包,它会将生成的Deb软件包放置在上层目录中。 cd tree-1.5.1.2 sudo dpkg-buildpackage 这样就会在当前目录编译生成可执行文件,并在上层目录生成tree-1.5.1.2-1_i386.deb 5.安装软件包 使用dpkg –i命令来安装生成的Deb软件包。 sudo dpkg –i tree-1.5.1.2-1_i386.deb 6.测试tree程序 我们用它来查看编译所在工作目录的内容。 tree –L 2 References: [1] ubuntu 编译源码包 dsc diff.gz orig.tar.gz [2] 请问.dsc怎么用? [3] man dpkg-source [4] man dpkg-buildpackage [5] man dpkg 其中 .orig.tar.gz 是软件原始源码包,没有经过任何修改; .diff.gz 是将源码包 debian 化的文件,包含一些补丁和编译规则;.dsc 描述了源码包的信息,上述命令是解压源码和打补丁的综合操作。