> CentOS > CentOS教程 >

CentOS软件包管理之源码安装

源代码编译安装概述:
源代码编译安装顾名思义就是使用源代码在本地计算机编译安装的过程。

使用源代码安装软件的优点:
获得最新的软件版本,及时修复bug
根据用户需要,灵活定制软件功能

源代码包的格式:
源代码包为了方便在互联网上传播通常被打包压缩成.tar.gz或.tar.bz2的格式,现在也有最新的.tar.xz的格式。所以源代码包也被称作Tarball.

//httpd源码包 
[root@localhost ~]# ls -l httpd-2.4.7.tar.bz2 
-rw-r--r--. 1 root root 5004719 Feb 28 12:47 httpd-2.4.7.tar.bz2

源码包的验证:
由于大部分源码包都是直接在互联网上提供,为了避免下载到被恶意串改的源码包或软件包下载过程中被人恶意串改,我们有必要对下载的源码包进行完整性验证。

//下面为apache官网提供的httpd源码包MD5值 
http://www.apache.org/dist/httpd/httpd-2.4.7.tar.bz2.md5 
170d7fb6fe5f28b87d1878020a9ab94e *httpd-2.4.7.tar.bz2 
//下面是我们通过CentOS自带md5计算工具计算出来的httpd源码包MD5值 
[root@localhost ~]# md5sum httpd-2.4.7.tar.bz2 
170d7fb6fe5f28b87d1878020a9ab94e  httpd-2.4.7.tar.bz2 
//两者相比一致,说明包没有被恶意串改

源码包安装的前提条件:
将源代码包安装到本地计算机上需要满足下列两个基本条件:

  1、要有相应包的解包工具(tar、bzip2等),一般情况这些工具在系统安装的时候会自动安装。
  2、要有编译环境,一般情况系统不会自动安装,需要手动进行安装。在RHEL6系统上,
        可以通过使用yum groupinstall命令安装。

[root@localhost ~]# yum groupinstall "Desktop Platform Development" "Development tools" "Server Platform Development"

源码安装httpd:

1、将httpd-2.4.7.tar.bz2解包,并进入解压出来的目录

[root@localhost ~]# tar xf httpd-2.4.7.tar.bz2 
[root@localhost ~]# cd httpd-2.4.7
[root@localhost httpd-2.4.7]# pwd 
/root/httpd-2.4.7

2、查看说明文档和安装文档

[root@localhost httpd-2.4.7]# less README 
[root@localhost httpd-2.4.7]# less INSTALL

3、./configure配置

//查看configure选项,常用选项为--prefix指定安装目录,如果不跟任何参数则安装至默认目录 
[root@localhost httpd-2.4.7]# ./configure --help 
//将httpd安装至/usr/local/httpd目录 
[root@localhost httpd-2.4.7]# ./configure --prefix=/usr/local/httpd 
//完成后没有任何错误提示则可以进行下一步 
config.status: creating build/rules.mk 
config.status: creating build/pkg/pkginfo 
config.status: creating build/config_vars.sh 
config.status: creating include/ap_config_auto.h 
config.status: include/ap_config_auto.h is unchanged 
config.status: executing default commands 
[root@localhost httpd-2.4.7]#

4、make和make install

//使用make命令编译 
[root@localhost httpd-2.4.7]# make 
//编译完成后正常退出,没有任何错误提示则可以进行安装 
make[1]: Leaving directory `/root/httpd-2.4.7' 
[root@localhost httpd-2.4.7]# 
//将编译完的包使用makeinstall命令安装 
[root@localhost httpd-2.4.7]# make install 
//安装完成后正常退出,没有任何错误提示则说明安装完成 
make[1]: Leaving directory `/root/httpd-2.4.7' 
[root@localhost httpd-2.4.7]#

5、添加httpd相关目录到系统默认搜索路径

//将httpd二进制文件添加至系统PATH变量 
[root@localhost httpd-2.4.7]# vim /etc/profile.d/httpd.sh 
  1 export PATH=/usr/local/httpd/bin:$PATH 
//添加完成手动完成一次环境变量导出 
[root@localhost httpd]# . /etc/profile 
//本次安装httpd没有自带库文件,如果有自带库文件需将自带库目录添加至系统库配置文件中 
[root@localhost httpd-2.4.7]# vim /etc/ld.so.conf.d/httpd.conf 
  1 /usr/local/httpd/lib 
//添加完成后重新搜索库文件并生成缓冲 
[root@localhost httpd]# ldconfig 
//将httpd自带头文件链接至系统头文件目录 
[root@localhost httpd-2.4.7]# ln -s /usr/local/httpd/include/ /usr/include/httpd 
[root@localhost ~]# ls -l /usr/include/httpd 
lrwxrwxrwx. 1 root root 25 Feb 28 15:16 /usr/include/httpd -> /usr/local/httpd/include/ 
//将httpd自带man手册路径添加至系统man配置文件 
[root@localhost ~]# grep "/usr/local/httpd" /etc/man.config 
MANPATH /usr/local/httpd/man

6、启动httpd

[root@localhost ~]# apachectl start 
//验证80端口是否处于监听状态 
[root@localhost ~]# netstat -tnlp 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address              Foreign Address            State      PID/Program name  
tcp        0      0 0.0.0.0:111                0.0.0.0:*                  LISTEN      1550/rpcbind      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                  LISTEN      1767/sshd          
tcp        0      0 127.0.0.1:631              0.0.0.0:*                  LISTEN      1640/cupsd        
tcp        0      0 127.0.0.1:25                0.0.0.0:*                  LISTEN      1930/master        
tcp        0      0 0.0.0.0:38758              0.0.0.0:*                  LISTEN      1568/rpc.statd    
tcp        0      0 :::111                      :::*                        LISTEN      1550/rpcbind      
tcp        0      0 :::80                      :::*                        LISTEN      13748/httpd        
tcp        0      0 :::22                      :::*                        LISTEN      1767/sshd          
tcp        0      0 ::1:631                    :::*                        LISTEN      1640/cupsd        
tcp        0      0 ::1:25                      :::*                        LISTEN      1930/master        
tcp        0      0 :::33114                    :::*                        LISTEN      1568/rpc.statd

7、通过网页访问

CentOS软件包管理之源码安装

总结,以上就是源代码包安装的全过程。源代码是一个Linux管理员必备的技能,很多服务为了有更好的性能只能通过源代码包安装。




(责任编辑:IT)