Linux源码包安装程序

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

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

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

--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 :禁用某功能

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

▪编译参数
--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模块;

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

-----------------------------------------------------------------------------
★事前准备:
在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境,它需要具备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

  

【编译安装】

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

#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
-----------------------------------------------------------------------------

原文地址:https://www.cnblogs.com/mountain2011/p/10132773.html