#注意,如果在 "./configure" 或 "make" 编译中报错,则在重新执行命令前一定要执行 make clean 命令,它会清空 Makefile 文件或编译产生的 ".o" 头文件。
#初次安装时,可能需要apr、apr-util、pcre文件,请自行下载,然后用WinSCP传输进Linux中,用“./configure”命令安装编译,建议和apache安装在同一目录下。
由于 Linux 操作系统开放源代码,因此在其上安装的软件大部分也都是开源软件,例如 Apache、Tomcat 和 PHP 等。开源软件基本都提供源码下载,可采用源码安装的方式安装软件。
注意,本节使用的源码包,指的是软件所有源代码的压缩包,其后缀名为 ".tar.gz" 或 ".tar.bz2";而 SRPM 源码包本质上属于 RPM 包,也就是源码的RPM包,其文件后缀为 ".src.rpm"。虽然都叫源码包,但不是一码事。
软件的源代码,也就是软件的原始数据,任何人都可以通过源代码查看该软件的设计架构和实现方法,但软件源代码无法再计算机中直接运行安装,需要将源代码通过编译转换为计算机可以识别的机器语言,然后才可以安装。
Linux 系统中,绝大多数软件的源代码都是用 C 语言编写的,少部分用 C++(或其他语言)编写。因此要想安装源码包,必须安装 gcc 编译器(如果涉及 C++ 源码程序,还需要安装 gcc-c++编译器)。
如果没有安装,建议使用yum命令安装
除了安装编译器,还需要安装 make 编译命令。要知道,编译源码包可不像编译一个 hello.c 文件那样轻松,包中含大量的源码文件,且文件之间有着非常复杂的关联,直接决定着各文件编译的先后顺序,因此手动编译费时费力,而使用 make 命令可以完成对源码包的自动编译。
如果未安装,可使用 yum -y install make 命令直接安装 make。
下载 apache 源码包。该软件的源码包可通过官方网站http://httpd.apache.org/download.cgi#apache24下载,得到的源码包格式为压缩包( ".tar.gz" 或 ".tar.bz2" )。下载完成后通过WinSCP将源码包传输给linux(直接拖拽即可),WinSCP如图3:
将各种文件分门别类保存在对应的目录中,应该成为合格 Linux 管理员约定俗成的习惯。
将源码包进行解压缩,使用tar命令,不同的压缩包使用不同的命令和选项。
进入解压目录,执行如下命令:
./configure 软件配置与检查。这一步主要完成以下 3 项任务:
1.检测系统环境是否符合安装要求。
2.定义需要的功能选项。通过 "./configure--prefix=安装路径" 可以指定安装路径。注意,configure 不是系统命令,而是源码包软件自带的一个脚本程序,所以必须采用 "./configure" 方式执行("./" 代表在当前目录下)。"./configure" 支持的功能选项较多,可执行 "./configure--help" 命令查询其支持的功能,例如:
3.把系统环境的检测结果和定义好的功能选项写入 Makefile 文件,因为后续的编译和安装需要依赖这个文件的内容。图5是已经安装过apache的目录,若没有安装,则没有Makefile文件。
安装源码包既可以放在/opt/目录下,也可以放在/usr/local/目录下。我选择的是/opt/目录。
此命令没有加载其他功能,只是指定安装目录。需要说明的是,"/opt/apache2" 目录不需要手工建立,安装完成后会自动建立(这个目录是否生成也是检测软件是否正确安装的重要标志)。
make 编译。make 会调用 gcc 编译器,并读取 Makefile 文件中的信息进行系统软件编译。编译的目的就是把源码程序转变为能被 Linux 识别的可执行文件,这些可执行文件保存在当前目录下。
执行的编译命令如下:[root@localhost httpd-2.2.9]# make
编程过程较为耗时,需要有足够的耐心。
正式开始安装软件,这里通常会写清程序的安装位置,如果没有,则建议读者把安装的执行过程保存下来,以备将来删除软件时使用。
安装指令如下:[root@localhost httpd-2.2.9]# make install #整个过程不报错,即为安装成功。
安装源码包过程中,如果出现“error”(或“warning”)且安装过程停止,表示安装失败;反之,如果仅出现警告信息,但安装过程还在继续,这并不是安装失败,顶多使软件部分功能无法使用。
Linux源码包卸载
通过源码包方式安装的各个软件,其安装文件独自保存在 /usr/local/ 目录下的各子目录中。例如,apache 所有的安装文件都保存在 /usr/local/apache2 目录下。这就为源码包的卸载提供了便利。
源码包的卸载,只需要找到软件的安装位置,直接删除所在目录即可,不会遗留任何垃圾文件。需要读者注意的是,在删除软件之前,应先将软件停止服务。
以删除 apache 为例,只需关闭 apache 服务后执行如下命令:[root@localhost ~]# rm -rf /usr/local/apache2/