源码就是用特定的语言来编写的文本,比如我们常见的c语言。然而源码的安装要经过配置、编译的一系列的复杂过程,那么如此的麻烦为何还要来安装源码呢?其实这是为了让我们的系统来使用更新的功能和更多的功能,另外还可以更加个性化我们的配置。就拿apache来说吧,红帽官方提供给我们的是2.2的版本,但是最新的的版本已经到2.4了,所以有些时候我们需要安装源码。
下面我们来简单说说关于源码安装的必备环境:
源码需要编译成可执行文件,而编译则需要有相应的编译环境。当我们的系统中安装了Develepment Tools、Develepment Libraries、legacy software、和X soft Develepment这四个软件组的话,我们的编译环境就基本上具备了。
推荐阅读:
Ubuntu 12.04下StarDict发音的设置 http://www.linuxidc.com/Linux/2012-10/73168.htm
Linux下安装星级译王Stardict http://www.linuxidc.com/Linux/2010-03/24807.htm
openSUSE下安装星际译王(StarDict-3.0.1) http://www.linuxidc.com/Linux/2007-11/8912.htm
我们以软件httpd-2.4为例为大家讲解,下面开始源码的安装工作:
第一步:拆解httpd并放入指定的目录/usr/local/src
切换到源码被拆解的位置,进入该目录下相应的httpd目录,里边有些特征的文件,如configure(为生成makefile文件)、INSTALL或者README(指导我们安装)。查看INSTALL文件,如下所示
第二步:生成makefile文件
但是我们不会那么容易装好的,安装过程中我们会发现种种问题,下面我们一一来解决
(1)生成httpd的makefile文件
然后我们查看系统有没有安装apr
结果我们发现安装了apr,这是怎么回事呢?发生这种情况我们首先应该考虑到apr里面缺少我们需要的库,而这些库往往放在devel里面,那么我们来安装apr-devel软件包。
(2)但是安装完apr-devel后再进行第一步又出现下面错误
提示我们apr版本太低了,至少是1.4.0的才可以。那么去网上找更高的版本,这里需要注意的是我们要找适合我们系统平台的源码才可以,如下图所示,一般的都是i386、i586和i686的平台,但是如果你的是64位的就要选择x86_64的。
开始安装apr的源码,我们要把apr和apr-util都安装,util是工具,把这两个软件包分别进行拆解
此时我们在/usr/local/apr/apr1-1.4.6目录下,然后执行make进行编译
最后执行make install进行安装
(3)安装完毕后/usr/local/apr目录下会生成下列文件
然而这些库文件、头文件若想要被他人所利用还需要做一些处理:
【头文件的处理】进入系统能识别头文件的目录/usr/include,然后为apr的头文件创建链接到所在目录ln -s /usr/local/apr/include/apr-1/* .
【库文件的处理】在/etc/ld.so.conf.d目录下创建名为apr.conf的文件并进行编辑,输入一个供系统查找库文件的路径/usr/local/apr/lib;保存退出后ldconfig重新加载缓存然后查看。如下图所示,看到库文件可以被找到
(4)至此apr已经被安装好了,然后依据apr的安装来进行apr-util的安装,在生成makefile文件时又出现下面的错误,提示我们apr并没有找到,让我们加入一个–with-apr的选项
这里需要注意的是在源码安装过程中我们要学会用查看指令的方式为我们解决问题,查看有关信息
到/usr/local/apr目录下用tree命令显示文件之间的关系,结果看见在bin目录下有该文件
然后生成makefile文件,注意要加进文件目录
然后make、安装,因为util是个工具,所以没必要管头文件和库文件,所以apr的问题到此就都解决了。
(5)然后再来进行第一步,但是又出问题了,提示我们缺少配置文件,需要我们指明apr的配置文件
再在第一步中加入apr配置文件的路径
然而类似的问题又出现了,提示我们apr-util的配置文件没找到,那么我们再把 –with-apr-util=/uar/local/apr-util/ 加入上边指令中又有些小问题出现,说pcre的库找不到。
经过前面的配置我们可以猜想是因为pcre-devel的软件包没有安装的缘故,那么进行pcre-devel的安装。
安装完毕后再来进行httpd的makefile文件的生成,这次没有再出现问题了。安装的过程是辛苦的,不过不要灰心哟,努力和回报是相对的!
详情请看第2页:http://www.linuxidc.com/Linux/2013-08/88285p2.htm
第三步:make进行编译
第四步:make install进行安装
第五步:根据前面对apr头文件和库文件的处理来对httpd的头文件和库文件进行处理
第六步:为apache服务准备配置文件
(1)首先切换到/etc/apache/bin目录下,运行一个名为httpd的服务器程序,然后发现apache服务已启动
(2)关闭服务,再为服务程序挂接配置文件,然后发现服务又启动了
(3)但是我们想要做到像系统其它服务一样,输入start 服务就会启动,而输入stop服务就停止,那么我们还需要为它准备一个控制脚本。到/etc/init.d目录下,创建一个名为httpd的文件,因为它最后要成为可执行的脚本,所以用chmod a+x httpd为它增加可执行权限。然后进行编辑,如下图所示
完成后进行启动、关闭、显示状态和重启的测试,发现都可以完成
(4)但是我们觉得还不够,我们还想服务可以随着电脑的启动而启动,我们还要做一些配置
我们查看一下/etc/init.d/acpid,该文件是该服务的控制脚本
我们要想使用chkconfig命令来控制服务的开启,需要在我们httpd的控制脚本中加入上边标记的两行,如下图所示
然后把httpd服务加入chkconfig的控制
查看了服务的状态,看到正如脚本文件中添加的一样,在3、4、5级别为on,之后我们就可以利用chkconfig命令来控制apache服务随机启动与关闭了
(5)检查服务配置
在另外一台机器上用http://192.168.2.101来访问该服务器,如下图所示,测试表明配置成功了
(6)我们在配置linux服务器的时候经常会用到手册,那么我们apache的手册可以用吗?我们切换到/usr/local/apache/man/man1下,查看目录并查看ab.1的手册,如下图所示
提示我们没有手册,但是我们明明有啊,这是怎么回事呢?在linux下一切皆文件,我们还要在man的配置文件/etc/man.conf去加上该手册的目录以供查找,如下图所示
然后再尝试用手册来查ab,结果如下图所示
至此我们的源码安装就完成了,当然了,其它的源码安装都与此过程差不多,要做的就是以不变应万变。
更多RedHat相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10