镜像下载、域名解析、时间同步请点击 阿里云开源镜像站
源码包编译实例
下面通过编译安装httpd来深入理解源码包安装(httpd-2.4.54)
下载编译工具,httpd以及其两个依赖包的源码包
//源码包建议到官方网站下载
[root@lnh ~]# mkdir xbz
[root@lnh ~]# cd xbz/
[root@lnh xbz]# dnf -y install gcc gcc-c++ make wget
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
[root@lnh xbz]# ls
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz
安装apr
[root@lnh xbz]# ls
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz
[root@lnh xbz]# tar -xf apr-1.7.0.tar.gz
[root@lnh xbz]# ls
apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz
//将apr解压到当前目录
[root@lnh xbz]# cd apr-1.7.0/
[root@lnh apr-1.7.0]# ls
apr-config.in build-outputs.mk helpers misc strings
apr.dep CHANGES include mmap support
apr.dsp CMakeLists.txt libapr.dep network_io tables
apr.dsw config.layout libapr.dsp NOTICE test
apr.mak configure libapr.mak NWGNUmakefile threadproc
apr.pc.in configure.in libapr.rc passwd time
apr.spec docs LICENSE poll tools
atomic dso locks random user
build emacs-mode Makefile.in README
build.conf encoding Makefile.win README.cmake
buildconf file_io memory shmem
//进入这个源码包可以看见里面被解压出来的东西
[root@lnh apr-1.7.0]# ./configure --prefix=/usr/local/src/apr
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/apr.h
config.status: creating build/apr_rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
rm: cannot remove 'libtoolT': No such file or directory
config.status: executing default commands
//生成Makefile
一般常用的有 --prefix=PREFIX 这个选项的意思是定义软件包安装到哪里
建议,源码包都是安装在/opt/目录下或者/usr/local/src目录下面
[root@lnh apr-1.7.0]# make
...
gcc -E -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I./include -I/root/xbz/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/root/xbz/apr-1.7.0/include/arch/unix -I/root/xbz/apr-1.7.0/include -I/root/xbz/apr-1.7.0/include/private -I/root/xbz/apr-1.7.0/include/private export_vars.c | sed -e 's/^\#[^!]*//' | sed -e '/^$/d' >> apr.exp
sed 's,^\(location=\).*$,\1installed,' < apr-1-config > apr-config.out
sed -e 's,^\(apr_build.*=\).*$,\1/usr/local/src/apr/build-1,' -e 's,^\(top_build.*=\).*$,\1/usr/local/src/apr/build-1,' < build/apr_rules.mk > build/apr_rules.out
make[1]: Leaving directory '/root/xbz/apr-1.7.0'
//编译生成Makefile,此处虽然出现了make[1