★安装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
-----------------------------------------------------------------------------

Linux源码包安装程序的更多相关文章

  1. Linux源码包安装过程及注意事项

    众做周知RedHat Linux使用RPM包管理器安装rpm包,但是RPM包是由红帽编译打包的,通常相对于最新版落后了很多,甚至可能缺少我们所要使用的功能.如果你需要定制想要的软件功能.自定义安装路径 ...

  2. linux 源码包安装拾遗

    源码包安装和apt-get/yum的区别 安装前的区别:概念上的区别 rpm和dpkg包是经过编译过的包,并且其安装位置由厂商说了算,厂商觉得安装在哪里合适,就会装在哪里,而源码包则是没有经过编译的文 ...

  3. Linux源码包安装和脚本安装

    能够先 vi INSTALL 看看安装过程. 1.源码包安装 2.脚本安装

  4. Linux 源码包安装过程

    安装准备 安装gcc编译器 下载源码包 源代码保存位置:/usr/local/src/ 软件安装位置:/usr/local/ 解压缩下载的源码包 进入解压缩目录 软件配置与检查:./configure ...

  5. Linux源码编译安装程序

    一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...

  6. Linux源码包安装apache(httpd)

    我这里实验是用的CentOS7 #事先先检查一下自己的linux是否安装apache [root@localhost ~]#rpm –q httpd #如果已安装则先卸载原来的apache [root ...

  7. Linux 系统下用源码包安装软件

    Linux系统下用源码包安装软件 by:授客 QQ:1033553122 下载源码安装包,解压或者直接双击打开(如果有安装zip或rar等压缩/解压缩软件的话),查找相关的安装说明文件,一般是READ ...

  8. Linux yum源码包安装和卸载

    Linux 下的绝大多数源码包都是用 C 语言编写的,还有少部分是用 C++ 等其他程序语言编写的.所以,要想安装源码包,必须安装 C 语言编译器 gcc(如果是用 C++ 编写的程序,则还需要安装 ...

  9. 『学了就忘』Linux软件包管理 — 47、Linux源码包的安装和卸载

    目录 1.源码包安装服务的注意事项 2.源码包安装服务的过程 3.源码包安装服务的删除 4.源码包安装服务的启动 5.源码包安装服务的关闭 1.源码包安装服务的注意事项 (1)安装服务选择哪种软件包? ...

随机推荐

  1. iOS 开发笔记 - 导航到地图

    导航到地图,已经不是什么新鲜事了.网上有好多参考的资料,我总结出只需要两步 第一步:在info中加上支持的各平台 比如:iosamap高德地图.comgooglemaps谷歌地图.baidumap百度 ...

  2. leafLet入门教程兼leafLet API中文文档参考

    英文文档参考:https://leafletjs.com/reference-1.3.4.html#popup 博客参考:https://blog.csdn.net/qq_36595013/artic ...

  3. lumen----------lumen如何安装和使用redis第三方包扩展

    1. 安装扩展 要使用redis必须安装两个扩展 "predis/predis": "~1.0",   "illuminate/redis" ...

  4. PAT (Basic Level) Practice (中文)1001 害死人不偿命的(3n+1)猜想

    1001 害死人不偿命的(3n+1)猜想 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍下去,最后一 ...

  5. html5 渐变按钮练习

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  6. Log4j 2使用教程二 【详解】

    配置 Log4j 2的配置可以通过4种方式中的1种完成: 1.通过使用XML,JSON,YAML或属性格式编写的配置文件. 2.以编程方式,通过创建一个ConfigurationFactory和配置实 ...

  7. xtrabackup 2.4.3 BUG

    用XtraBackup对备份集进行apply log 的时候,卡在 xtrabackup 版本:2.4.3 InnoDB: Waited for 1535930 seconds for 128 pen ...

  8. Yii2 mysql查询 int自动变string解决办法

    原因是PDO以string查询数据导致. 这个与YII没关系,是PDO的默认处理,解决方法只需在配置中的db配置中加上attributes的相关配置就行了,如下: 'components' => ...

  9. P4859 已经没有什么好害怕的了(dp+二项式反演)

    P4859 已经没有什么好害怕的了 啥是二项式反演(转) 如果你看不太懂二项式反演(比如我) 那么只需要记住:对于某两个$g(i),f(i)$ ---------------------------- ...

  10. 泛型集合List的详细用法

    命名空间:   System.Collections.Generic List<T>类是 ArrayList 类的泛型等效类.    该类使用大小可 按需动态增加 的数组实现 IList& ...