为什么要进行源码安装软件包呢?

由于我们系统自带都是一些已经编译好的rpm安装包,这些rpm包的更新的速度大约是每三年更新一次,对于那些具有新功能或者具有更多功能的的软件包,官方只提供给我们那些以c语言和其它语言编写的源码包,我们要想使用就必须自己进行编译和安装。使用源码安装我们不仅可以使用最新的软件,使用更新或更多的功能,而且能够个性定制自己的软件安装。


源码安装的一般步骤是:一般我们下载的源码都是tar.gz或者tar.bz2格式的,所以首先我们首先要拆包,一般将压缩包拆解到/usr/local/src/目录下;拆解后的文件就是源码,这是我们需要对源码进行相应的配置(./configure –选项)产生makefile;然后,对产生的makefile文件进行编译,编译产生相应的可执行文件、库文件、头文件、man手册;最后执行源码的安装make install;安装之后我们要进行更加细节和人性化的调整。


下面我们就以httpd-2.4.4的安装为例,为大家展示源码安装的具体步骤:

安装前的准备工作:

首先,我们先下载与http相关的软件包,与httpd相关的软件包我们可以去apache官方网站进行下载http://www.apache.org。这里我准备了的软件包:

httpd-2.4.4.tar.bz2

apr-1.4.6.tar.gz

apr-util-1.5.1.tar.gz

其次,由于我们下载的是源代码,这些源代码要使用就必须进行编译。编译又需要相应的编译器,linux常用的编译器有gcc等多种编译器,这就要求有多种编译的环境。一般情况下,只要安装了以下这些包组:

Development Libraries

               Development Tools  

               X Software Development

               Legacy Software Development

就能解决绝大部分的源码的编译环境问题了。我们在源码安装前使用:yum grouplist |less查看是否这些包组已经安装,

软件包的安装(源码安装)_官方网站

至此准备工作已经完成了。


下面是源码安装的具体操作步骤:

我们将所用的源码复制到我们的管理员家目录下:

软件包的安装(源码安装)_官方网站_02


将httpd-2.4.4.tar.bz2解压到/usr/local/src目录下:tar –jxvfhttpd-2.4.4.tar.bz2 –C /usr/local/src/

软件包的安装(源码安装)_linux_03


切换目录到/usr/local/src/httpd-2.4.4/:

软件包的安装(源码安装)_源码安装_04


使用./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache 来指明文件的安装目录和配置文件的存放目录。但是在产生makefile文件之前,该配置脚本会对系统环境进行各种检测,来查看是否支持apache的运行需求:

软件包的安装(源码安装)_具体步骤_05


接下来我们通过rpm –qa|grep –i apr查看我们的系统是否安装了apr:

软件包的安装(源码安装)_源码安装_06



发现我们已经安装了apr主程序,但是为什么还提示没有找到呢?因为有时候可能有些apr的库文件并不包含在apr的主程序当中,而是存在apr-devel的程序中。


下面我们查看是否存在apr-devel安装包:

软件包的安装(源码安装)_httpd安装_07


发现存在apr-devel包,安装apr-devel包,再次执行./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache命令:

软件包的安装(源码安装)_linux_08


我们将事先准备好的apr-1.4.6.tar.gz和apr-util-1.5.1.tar.gz解压安装,安装完成后会出现以下目录:

软件包的安装(源码安装)_linux_09

为了将形成的头文件和库文件能够被系统借用,我们要将形成的头文件和库文件放到系统所能识别的目录(系统所能识别的头文件目录为:/include或/usr/include;库文件所能识别的目录为:/lib或/usr/lib):

我们可以通过ln –s/usr/local/apr/include/apr-1/* /usr/include

为了能识别库文件,我们需要在/etc/ld.so.conf.d/下新建一名为apr.conf的文件,并将apr的库文件目录放在apr.conf的文件内。然后,通过ldconfig命令更新缓存,然后通过ldconfig –pv |grep apr命令来查看是否加载成功库文件。此时的头文件和库文件就能被系统找到。

软件包的安装(源码安装)_官方网站_10

在这里为大家推荐一个可以下载linux相关安装包网址:http://www.rpmfind.net


安装完成apr主程序和工具后,我们再次进入/usr/local/src/httpd-2.4.4/目录下执行./configure--prefix=/usr/local/apache --sysconfdir=/etc/apache命令:

软件包的安装(源码安装)_官方网站_11


这时我们就需要在刚才的命令后面来指明apr-1-config的配置文件(--with-apr=/usr/local/apr/bin/apr-1-config):

软件包的安装(源码安装)_具体步骤_12


我们同样,加入这样一句话—with-apr-util=/usr/local/apr-util/:

软件包的安装(源码安装)_linux_13


此时,我们查看是否安装了pcre,如果安装了,查看是否安装了pcre-devel,没有的话安装pcre-devel:

软件包的安装(源码安装)_源码安装_14


好了,我们继续上面未完成的命令,这次终于成功了,然后我们执行make指令进行编译。

软件包的安装(源码安装)_官方网站_15


最后,我们通过make install 进行安装:

软件包的安装(源码安装)_源码安装_16


切换目录到/usr/local/apache/目录下查看所形成的目录及文件:

软件包的安装(源码安装)_linux_17


此时,要想系统能够调用我们头文件,我们需要把我们的头文件链接到系统能够识别的目录下:

软件包的安装(源码安装)_源码安装_18


要想识别我们的库文件,需要在/etc/ld.so.conf.d/下新建一名为apache.conf文件将库的具体路径(/usr/local/apache/modules/)写到这个文件内:

软件包的安装(源码安装)_具体步骤_19

然后,使用ldconfig更新缓存。


要想实现man的帮助命令,我们需要修改/etc/man.conf文件,添加我们apache的man手册的路径:

软件包的安装(源码安装)_源码安装_20


测试man命令能否成功:

软件包的安装(源码安装)_httpd安装_21


对于服务来说,要想实现它的功能就必须挂接它的配置文件:

软件包的安装(源码安装)_具体步骤_22


要想实现对apache的控制,我们需要编写控制脚本,通过chkconfig命令,实现开机自启动,控制脚本一般放在/etc/init.d/目录下。我们进入到/etc/init.d/目录下编写一个脚本httpd,并且改变该文件的权限为可执行。

软件包的安装(源码安装)_具体步骤_23

软件包的安装(源码安装)_httpd安装_24

软件包的安装(源码安装)_源码安装_25

软件包的安装(源码安装)_源码安装_26

至此,源码安装httpd的整个安装过程就已经完成。