terwe 发表于 2016-8-24 10:34:27

源码安装http2.2.29

一、一般源码编译都是日后工作中的重点
程序包编译安装:
   编译是真正将代码编译成为cpu可以执行的指令的过程,能够编译成为自己需要版本的过程。
   如果我们在网上下载的话会有很多不便,如:1.找不到合适的rpm包,2.虽然有合适的,不满足我们的需要的功能等等!

源代码组织格式:
        多文件:文件中的代码之间。很可能存在跨文件依赖关系:
        项目打包构建管理工具:
                c、c++:make(会完成以上源代码的所有过程)
                (configure --》Makefile.in (模板)--》makefile)

C代码编译安装三步骤:
(1)./configure
        1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile
        2)检查依赖到的外部环境;
(2)make
        根据makefile文件,构建应用程序
(3)makeinstall




示例:下面来源码安装httpd-2.2.29
一、需先把实验环境安装好
1.下载源码包
        httpd-2.2.29httpd-2.2.29.tar.bz2         //down一个源码包到目录

1
2
3
4
5
# tar -jxvf httpd-2.2.29.tar.bz2    //进行解压操作
2.安装开发环境,gcc,开发包组
# yum grouplist
//查询到可安装包组,安装development tools, 这是一个开发环境会用到的包组
# yum groupinstall “Development tools”    //安装包组








        安装gcc:
        # yum install gcc      //已经安装过了



二、进入源码包解压的目录中开始安装:
        1.# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/http
                # --perfix= 指定安装位置
                #--sysconfdie=指定配置文件安装位置
                #可用./configure --help 查看安装时的选项,也可查看源码目录内的INSTALL文件查看安装方法
        2.执行make命令
        3.执行make    install命令进行安装


安装后的配置:
        (1)如果不在命令搜索路径下,则需导出二进制程序目录至PATH环境变量中:
        编辑文件/etc/profile.d/NAME.sh
                export PATH=/PATH/TO/BIN:$PATH

1
2
3
4
# cd /etc/profile.d/
# touch http.sh
# vim http.sh
export PATH=/usr/local/apache/bin:$PATH







        (2)导出库文件路径
        编辑文件/etc/ld.so.conf.d/NAME.conf
                添加新的库文件所在目录至此文件中;
                让系统重新生成缓存
                        ldconfig -v

1
2
3
4
# cd /etc/ld.so.conf.d/
# touch apache.conf
# vim apache.conf
/usr/local/apache/lib




      统重新生成缓存ldconfig -


1
2
3
4
5
6
7
8
9
# ldconfig -v
/usr/local/apache/lib:
libapr-1.so.0 -> libapr-1.so.0.5.1
libexpat.so.0 -> libexpat.so.0.5.0
libaprutil-1.so.0 -> libaprutil-1.so.0.5.3
/usr/lib64/mysql:
libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
..........................







    (3)导出头文件
      保存至此/usr/incloud或者基于链接的方式实现
      ln -sv
      导出所有每一个文件为一个链接

1
2
3
4
5
6
7
8
9
10
# ln -s /usr/local/apache/include/ /usr/include/apache
# cd/usr/include
# ll
total 1344
-rw-r--r--.1 root root   7502 May 10 21:54 aio.h
-rw-r--r--.1 root root   2115 May 10 21:54 aliases.h
-rw-r--r--.1 root root   1289 May 10 21:54 alloca.h
-rw-r--r--.1 root root   4351 May 10 21:54 a.out.h
lrwxrwxrwx   1 root root   26 Jul 25 21:57 apache -> /usr/local/apache/include/
         .........................







    (4)导出帮助手册
      编辑/etc/man.config文件
      添加MANPATH=/usr/local/apchach2/man    //此为http服务源码安装时指定的文件地址

1
# vim /etc/man.config





页: [1]
查看完整版本: 源码安装http2.2.29