20160822作业
源码安装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)make install
示例:下面来源码安装httpd-2.2.29
一、需先把实验环境安装好
1.下载源码包
httpd-2.2.29 httpd-2.2.29.tar.bz2 //down一个源码包到目录
[root@localhost http3]# tar -jxvf httpd-2.2.29.tar.bz2 //进行解压操作2.安装开发环境,gcc,开发包组[root@localhost cd]# yum grouplist //查询到可安装包组,安装development tools, 这是一个开发环境会用到的包组[root@localhost cd]# yum groupinstall “Development tools” //安装包组
安装gcc:
[root@localhost cd]# yum install gcc //已经安装过了
二、进入源码包解压的目录中开始安装:
1.[root@localhost httpd-2.2.29]# ./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
[root@localhost apache]# cd /etc/profile.d/[root@localhost profile.d]# touch http.sh[root@localhost profile.d]# vim http.sh export PATH=/usr/local/apache/bin:$PATH
(2)导出库文件路径
编辑文件/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中;
让系统重新生成缓存
ldconfig -v
[root@localhost profile.d]# cd /etc/ld.so.conf.d/[root@localhost ld.so.conf.d]# touch apache.conf[root@localhost ld.so.conf.d]# vim apache.conf /usr/local/apache/lib
统重新生成缓存 ldconfig -
[root@localhost profile.d]# ldconfig -v/usr/local/apache/lib:libapr-1.so.0 -> libapr-1.so.0.5.1libexpat.so.0 -> libexpat.so.0.5.0libaprutil-1.so.0 -> libaprutil-1.so.0.5.3/usr/lib64/mysql:libmysqlclient.so.16 -> libmysqlclient.so.16.0.0libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0..........................
(3)导出头文件
保存至此/usr/incloud或者基于链接的方式实现
ln -sv
导出所有每一个文件为一个链接
[root@localhost include]# ln -s /usr/local/apache/include/ /usr/include/apache[root@localhost include]# cd /usr/include[root@localhost include]# lltotal 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.hlrwxrwxrwx 1 root root 26 Jul 25 21:57 apache -> /usr/local/apache/include/ .........................
(4)导出帮助手册
编辑/etc/man.config文件
添加MANPATH=/usr/local/apchach2/man //此为http服务源码安装时指定的文件地址
[root@localhost include]# vim /etc/man.config