Linux源码包安装程序

★安装OS时,建议提早安装开发组件php

CentOS 6:Development Tools、Server Platform Development
CentOS 7:Development Tools、Development and Creative Workstationlinux

★configure脚本(# ./configure [option…])
经常使用选项:c++

--help:得到其支持使用的选项
--prefix=/PATH/TO/SOMEWHERE:指定默认安装位置;默认为/usr/local/;
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;
--enable-FEATURE[=ARG]:开启指定特性以及安装路径;默认开启时无须指定;
--disable-FEATURE:关闭指定特性;默认关闭时无须指定;
--with-PACKAGE[=ARG]:安装指定依赖包以及其安装路径;
--without-PACKAGE:不安装指定依赖包;
--with-function :启用某功能
--without-function :禁用某功能apache

例如:
#cd ../httpd-2.2.27/
# ./configure --sysconfdir=/etc/httpd --prefix=/usr/local/apache2 --with-apr=/usrvim

▪编译参数
--prefix=/PATH:指明安装路径;
--sysconfdir=/PATH:指明配置文件路径;不指明,默认在安装路径下;
--enable-so:表示启用DSO动态模块加载机制;
--enable-ssl:启用支持ssl功能;
--enable-mods-shared=most:表示动态的编译进来大多数的模块;若是使用--enable-mods-shared=all,则指动态的编译全部的模块。
--with-apr=/PATH:指明apr程序包的路径;不使用=指明路径会在默认路径查找;
--with-apr-util=/PATH:指明apr-util程序包的路径;
--with-mpm=prefork:指明默认使用的MPM模块;bash

★说明:
静态编译:将module直接在安装的过程当中放到apache中,当apache使用module的时候,就能够直接使用了。
动态编译:将module引入到apache之中,在使用的时候才会真正的去加载(经过LoadModule命令)
--with.....:表示依赖的包,不指明路径,编译安装时会到默认路径下找;
--without.....:不依赖的包;
--enable.....:启用特性;
--disable.....:禁用特性;curl

-----------------------------------------------------------------------------
★事前准备:
在使用源码包安装服务程序以前,首先要让安装主机具有编译程序源码的环境,它须要具有C语言、C++语言、Perl语言的编译器,以及各类常见的编译支持函数库程序。所以请先配置稳当Yum软件仓库,而后把下面列出的软件包安装上:函数

yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel

  

【编译安装】url

(1)下载及解压源码包文件。orm

#tar xzvf FileName.tar.gz
#cd FileDirectory

(2)编译源码包代码。能够根据须要追加--prefix参数,以指定稍后源码包程序的安装路径。当编译工做结束后,若是系统环境符合安装要求,通常会自动在当前目录下生成一个Makefile安装文件。

#./configure --prefix=/usr/local/program

(3)生成二进制安装程序。使用make命令来根据Makefile文件内容提供的合适规则编译生成真正可供用户安装服务程序的二进制可执行文件。

#make

(4)运行二进制的服务程序安装包。若是在源码包编译阶段使用了--prefix参数,那么服务程序就会被安装到那个目录,通常默认安装到/usr/local/bin目录中。

#make install

(5)清理源码包临时文件。因为在安装服务程序的过程当中进行了代码编译的工做,在安装后目录中会遗留下不少临时垃圾文件,使用make clean命令对临时文件进行清理工做。

#make clean
-----------------------------------------------------------------------------

【安装后的配置】
(1) 将二进制程序目录添加至PATH文件变量中,不然只能使用绝对路径才能运行程序。
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
例如:

#export PATH=$PATH:/usr/local/apache2/bin
#vim /etc/profile.d/apache2.sh
export PATH=$PATH:/usr/local/apache2/bin

  

(2) 导出库文件路径。

编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在的目录至此文件中;
例如:/usr/local/apache2/lib

ldconfig -v:从新加载库文件路径,并查看;
ldconfig -p:查看已加载全部库文件路径;
例如:
#vim /etc/ld.so.conf.d/httpd.conf
/usr/local/apache2/lib
# ldconfig -v
# ldconfig -p | grep apache


(3) 导出头文件。
/usr/include/目录下,建立软连接;
ln -s target_dir soft_link ##能够导出一个目录为全部文件连接,也可为每个头文件导出一个连接,而后把建立的连接输出到/usr/include/目录下,或者直接复制头文件至/usr/include/目录;
例如:
#ln -sv /usr/local/apache2/include /usr/include/httpd
‘/usr/include/httpd’ -> ‘/usr/local/apache2/include’


(4) 导出man手册。

Centos7是在/etc/man_db.conf的40到50行之间,添加一个MANPATH参数(Centos6多是/etc/man.config);
例如:
#vim /etc/man_db.conf
MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man

执行命令查看:manpath-----------------------------------------------------------------------------

相关文章
相关标签/搜索