天天看点

编译安装和软件包安装

Linux平台上的软件安装分为编译安装和软件包安装,其中软件包安装最为简单,可以YUM直接安装,也可以把RPM包下载到本地再安装,总之省时省力,另外如果你想看YUM安装后,软件所涉及的目录有哪些,比如配置文件、程序文件都放在什么地方,也很简单,使用下面的命令:

<code>rpm -ql 软件名称</code>

如下图:

<a href="http://s4.51cto.com/wyfs02/M00/89/0A/wKiom1gFzWiA9Ia6AADjpifbUYo235.jpg-wh_500x0-wm_3-wmp_4-s_2435408472.jpg" target="_blank"></a>

今天我们来说一下编译安装是什么,为什么要用编译安装。

一般我们从网上下载的tar.gz的包都是源码包,针对源码包的软件安装成为编译安装。什么叫编译?简单来说就是把源代码变成适合当前平台的二进制文件,让内核可以识别。

编译安装的大体过程如下:运行源码包中的config或者configure检测程序(相信大家肯定熟悉),这个脚本一般后面都会跟一些参数,不同软件参数会不同。这个程序就是找到所需的函数库,编译器和其他资料,然后会生成一个Makefile文件,如果过程顺利,你就可以运行make进行安装,此时就Make命令就会读取生成的Makefile文件然后调用GCC编译器进行编译,然后最后通过make install命令进行安装。有时我们会看到下面的命令使用方式:

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

这就是把两个命令一次录入,然后按顺序执行,好处是不同等着。软件的安装位置、启动的特性等都是在configure阶段所指定的。具体可以使用下面命令来查看软件支持多少可用参数:

<code>.</code><code>/configure</code> <code>--help</code>

这里需要说明的是:GCC其实可以直接编译程序文件,为什么还需要根据makefile,这里最直接的原因就是效率问题,一个软件不可能只有一个程序文件,还有其他的所需文件,如果用GCC逐个编译实在太麻烦,所以用makefile比较高效。

注意事项:makefile生成以后,可以运行make test进行测试。另外如果第一次编译失败,第二次编译之前(make之前,configure之后)要运行make clean命令把之前的编译清除掉。

make clear:只是删除make产生的文件,它不能删除当前目录下产生的配置文件和build产生的文件

make distclean:类似于make clear但是它可以删除当前目录下产生的配置文件和build产生的文件

不是所有软件都可以通过软件包管理器安装,尤其是新版的软件。

      本文转自linuxjavachen  51CTO博客,原文链接:http://blog.51cto.com/littledevil/1863043,如需转载请自行联系原作者

继续阅读