为什么有RPM包还需要自己手动编译安装程序包呢?
因为笔者的水平有限,对此问题有两种自己的回答:
1.由于网络上的RPM包是作者自己用自己机器编译的,并不适合各种平台的硬件平台。 好比作者自己的机器是X86_64架构的,而你的机器是i386,那很不幸运,不适合你,只能下载源码手动安装了。
2.如果你是在大公司做运维的话,为了服务器系统的安全,你不可能轻易去网上下载RPM包安装的,因为别人可能恶意的注入木马后门什么也不是不可能的,所有为了安全期间,还是要自己手动进行编译安装的。
自己手动编译安装难不难呢,大概都需要哪些步骤呢?
那我先在这里大概讲下哪些步骤,然后在下面进行详解。
1.安装编译环境。
2.下载httpd程序包(源码)
3.编译,安装
呵呵,是不是相当的简单呢,好了,下面就进去详细的步骤了
1.安装编译环境
安装编译环境,顾名思义就是安装编译需要的编译器了。
大概有多少种编译器呢,我们可以在使用yum groupinfo Development tools 进行包组的查看了。有的读者也许还不懂这个命令的含义,我在写完这个博文后,会单独开设一个博文讲解yum命令和yum 仓库的,其实也很简单,不要畏惧。
当然,一个Development tools中有好多的编译工具,你不需要挑选,直接统统安装就可以了。
安装 Development tools 很简单,直接 yum install Development tools 。因为笔者的网速很烂,从yum库安装起来很慢,因为之前安装了,所以就不现场演示安装过程了。
当你安装成功后,运行查看所有包组的命令:yum grouplist 就可以查看是否已经安装成功。
好了,第一步就这么轻松的搞定了。
2.下载httpd源码包
在网上找到源码的地址,如图所示:
复制链接地址后,进去xshell中在命令行中输入:
wget 链接地址,下载下来的源码包就存在你当前的路径下。
下载好源码之后解压出来,在当前目录上使用:ls 查看源码包是用哪种格式的压缩文件压缩的。
以.tar.bz2结尾的文件,是用bzip2压缩用tar归档的的,可以使用tar –jxf httpd-2.2.25.tar.bz2解压缩并展开归档。得到一个文件名为:httpd-2.2.25
接下来就是进去到 httpd-2.2.25目录中,使用命令:cd httpd-2.2.25。
我们在编译之前还需要定义一下,对当前程序编译时启用哪些特性或者功能,已经自定义安装路径等等。包中的 configure 脚本就是用来设置的,说到这里有必要让大家对这个编译前的设定做一个更深入的介绍。
包中有个makefile.in 和 configure 两个文件,这两个文件是为一个步编译(make命令)生成配置文件的,当然不设置也是可以的,他是按照自己的默认配置默认的安装。
其中有几个常用的重要的配置:
1,我们可以指定安装的路径。
--prefix = /user/local/package-name
--sysconfdir=/etc/package-name
2, 指定启用的特性:
--enable-feature(特性) 例如: –enable-socket 配置不启用套接字功能。
--disable-feature 例如: -disable-socket 配置启用套接字功能
3, 指定所依赖的功能,程序或文件
--with-function: 启用某功能
--without-functions:不启用某功能
当然了不同的程序,他们的configure脚本的功能不同,设置也不太一样,可以获取帮助信息。
我们直接来执行 configure脚本,让其生成make的配置文件。
3,编译安装
编译:直接用make命令。
安装:make install
到此为止就安装好了。
---------------------------------------------------------------------------------------------------------------------------------------------
以上是安装好了,顾名思义下来就是要运行了,运行之前能需要设置下环境变量,这样才能让我们在shell中输入程序的时候,好让shell能够找到我们的源程序的位置来进行启动。当然这个设置是写入配置文件的,永久有效而不是只是针对当前的shell。
相关阅读: