[转]源代码的编译与安装

转自:http://blog.csdn.net/hustspy1990/article/details/5438487

绝大多数来自“源头”的源代码都是封装成所谓的tarball格式。

何为tarball?

一般而言,有份量的Open Source软件都含有相当多的文件,包括源代码、说明文件、编译支持文件、配置文件样本等。要将这么多文件完整的发布出去,典型的做法是以tar将它们封装成单一文件,再以gzip压缩。经过这两道处理手续的文件,就称为tarball文件。其扩展名是.tar.gz或.tgz。

tarball最主要的好处是可以在网络上方便传播,另一项好处是可以用标准工具解开。

解开tarball

解开tarball需要两个步骤:先用gunzip或gzip -d解压缩,然后使用tar展开解压缩后的文件。

例如,若要解开tarball.tar.gz文件:

#gunzip tarball.tar.gz
#tar xvf tarball.tar

或者,你也可以使用管道将gzip -d或gunzip的输出转接到tar的输入,避免产生中间的tar文件。例如:

#gzip –dc tarball.tar.gz  |  tar xv

在此例中,我们使用gzip的-c选项,避免它删除原本的tarball。

由于tar时常和压缩、解压缩操作牵扯在一起,所以GNU tar提供了z选项,自动帮你调用gzip(搭配c选项时)或gunzip(搭配x选项时)来处理tar所产生的文件。所以,使用GNU tar,只有一个步骤就可以解开压缩的tarball。

#tar xzvf tarball.tar.gz

编译Open Source软件

解开tarball之后的下一步,是将源代码编译成可执行的程序文件,也就是binaries文件。要完成编译,系统必须具备适当的开发工具软件,包括GNU C编译器与make编译工具。必要时,你可以另外安装其他的支持库或新版的配套软件按。

实际的编译程序随软件而异,但大致不脱离configure、make、make install三个基本步骤。

configure

对于较有规模Open Source软件包,在源代码目录树的顶层有一个configure script。一般而言,你不必修改或设定脚本就可以直接执行它。configure的作用是检验系统的实际环境是否具有所需要的编译器、函数库、工具以及其它支持项目(表头文件或其它软件包)。它利用这些实时收集的现场信息,产生一个适合该系统的Makefile文件,以便完成之后的编译工作。

configure的另一个工作,是让你设定编辑期选项。比方说,让你选择安装位置,是否支持特定功能、相关函数库的位置等。实际的编译期选项随软件而定,但通常你可以用configure --help命令列出所有编译期选项。

make

make原本是一个用来简化编译操作的工具软件,但后来衍生出许多用途,成为了管理者最爱的自动化工具。使用make时,必须编写一个Makefile文件,以规定的语法描述你的工作目标、各目标之间的依赖性以及满足依赖性所需要执行的动作。make能检查文件的修改时间,借此判断现实环境是否满足Makefile多描述的依赖性,并自动执行满足依赖性所需的动作,最后达成你要的工作目标。

对于编译工作而言,最终目的当然是“可执行文件”,而可执行文件本身是由许多“目标文件”连接而成,“目标文件”则是从源代码编译出来。每当程序员修改源代码,其文件修改日期必定比最后一次生成的“目标文件”更晚,make便可由此判断应该重新编译哪些源代码。

make语法:

make [-f makefile] [option […]] [target]

选项:

-f filename

使用特定的文件作为Makefile。

-j number_of_jobs

可同时运行的进程数。如果要加快编译速度,可以将number_of_jobs设定为CPU总数加1。少了没效果,多了没用。

大多数已编译好的软件会预先决定程序文件的位置。在大部分情况下,它们会期待能够放在/usr/local/bin,除非你在执行configure时指定了其它位置。为了方便将软件安装到默认位置,它们的Makefile包含一个特殊的目标,称为install。用户只要执行make install命令,文件就会被复制到特定的位置,并被赋予适当的权限。

示例:编译nano

1.先用tar的-z选项解压文件nano-1.2.1.tar.gz:

tar xzvf nano-1.2.1.tar.gz

2.解压后会产生一个新目录nano-1.2.1,进入此目录:

cd nano-1.2.1

利用ls -F命令查看此目录,你会发现里面有一个文件名为INSTALL。

3.如果你想要把程序安装到/opt目录下,而非默认目录下,则应该在执行configure的时候,以--prefix选项指出我们要安装的位置:

./configure --predix==/opt

几乎所有configure script都提供--help选项,让你列出所有的编译器选项。

4.使用configure script顺利产生Makefile之后,便可以使用make进行实质的编译过程:

make

5.编译完成后,就可以使用make install将它安装到你预选的目录:

make install

6.最后使用ls –F /opt/,可以查看它是否安装在了你指定的位置。

为了能够更方便使用安装好的软件,你的PATH变量应该要含有相关的路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值