APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
该软件主要由Apache组织负责。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。但随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。但由于APR的较好的移植性,越来越多的其他需要进行移植的C程序也开始使用APR。
打开官方网站:http://apr.apache.org/,选择最新释放出的版本,点击 Download 跳转到下载页面,你也可以直接把页面往下拉到最后,提供了apr 3个组件下载地址。
官方网站提供了3个apr组件需要下载,分别是 APR
, APR-util
和 APR iconv
3个组件。
实际上,针对于apache相关的依赖软件安装实际上只需要前两个 apr
和 apr-util
。
APR
APR 中包含了一些通用的开发组件,包括mmap,DSO等等。
右键点击获取apr下载地址。
获取该apr文件,此处以非root超级管理员,而是普通用户运行:
$ wget https://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz
解压刚刚下载好的apr文件。
$ tar -zxvf apr-1.7.0.tar.gz
进入解压后的文件。
$ cd apr-1.7.0
执行配置文件重写默认配置。
$ ./configure --prefix=/usr/local/apr
执行编译。
$ make
注意 ,此处可能报以下相关错误:
mkdir: 无法创建目录"/usr/local/apr": 权限不够
mkdir: 无法创建目录"/usr/local/apr/lib": 没有那个文件或目录
mkdir: 无法创建目录"/usr/local/apr": 权限不够
mkdir: 无法创建目录"/usr/local/apr/bin": 没有那个文件或目录
mkdir: 无法创建目录"/usr/local/apr": 权限不够
mkdir: 无法创建目录"/usr/local/apr/build-1": 没有那个文件或目录
mkdir: 无法创建目录"/usr/local/apr": 权限不够
mkdir: 无法创建目录"/usr/local/apr/lib": 没有那个文件或目录
mkdir: 无法创建目录"/usr/local/apr/lib/pkgconfig": 没有那个文件或目录
mkdir: 无法创建目录"/usr/local/apr": 权限不够
mkdir: 无法创建目录"/usr/local/apr/include": 没有那个文件或目录
mkdir: 无法创建目录"/usr/local/apr/include/apr-1": 没有那个文件或目录
make: *** [install] 错误 1
这是因为该普通用户没有对这个目录操作的权限,解决办法有两个:
- 切换到root超级管理员用户操作。
$ su
之后输入root的密码进入。
- 让root用户进行该目录的授权权限操作。
# chmod 777 /usr/local/
之后普通用户在调用命令前加上 sudo
命令执行即可。
然后安装文件,完成apr安装。
$ make install
请注意
,如果 make
中出现错误,重新调整执行后还是失败尝试 make clean
清除所有缓存文件后继续。
如果是在 make install
过程中也出现错误,在重新调整执行后还是失败尝试执行 make clean
并且删除生成了安装目录,然后重新执行 make
和 make install
,如若还是失败,尝试调用 make distclean
清除所有生成的文件。
APR-util
APR-util 中包含了一些常用的开发组件。这些组件与apr目录下的相比,它们与apache的关系更加密切一些。比如存储段和存储段组,加密等等。
右键点击获取apr-util下载地址。
注意 ,我这里采用的是tar.bz2格式的,你依然可以采用tar.gz格式的连接地址,他们区别在解压时参数有所不同。
$ wget https://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.bz2
$ tar -jxvf apr-util-1.6.1.tar.bz2
$ cd apr-util-1.6.1
$ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
$ make && make install
在编译安装阶段可能会报以错误
xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录
#include <expat.h>
^
编译中断。
make[1]: *** [xml/apr_xml.lo] 错误 1
make[1]: 离开目录“/home/centos/apr-util-1.6.1”
make: *** [all-recursive] 错误 1
这里有一个致命错误,具体解决办法请参考我的另一篇博客:点击查看,之后重新执行编译安装代码即可。
至此,apr-util安装完成。
APR iconv
实际上对于Apache的apr环境只要前两个就已经安装完成,而这个依赖依据你的实际情况决定是否安装。
APR iconv 包中的文件主要用于实现iconv编码。目前的大部分编码转换过程都是与本地编码相关的。在进行转换之前必须能够正确地设置本地编码。
右键点击获取apr iconv下载地址。
然后执行以下命令:
$ wget https://mirror.bit.edu.cn/apache//apr/apr-iconv-1.2.2.tar.gz
$ tar zxvf apr-iconv-1.2.2.tar.gz
$ cd apr-iconv-1.2.2/
$ ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
$ make && make install
完成apr-iconv的安装。
至此,相关的 APR 环境安装完成。