一、源码包的特点1、优点开源,如果能力足够,可以修改源码,定制自己需要的功能。软件编译安装,更方便适合自己的系统,更稳定,更高效卸载方便,直接删除安装目录即可,不会有残留2.缺点安装过程步骤多,尤其是安装大型软件集合时(比如搭建LAMP环境)编译过程耗时较长,安装时间比二进制安装要长。因为是编译安装,安装过程中一旦报错,新手很难解决3、源码包和RPM包的区别。包型没有编译,可以看源码。编译后的二进制包可以自定义。您可以选择所需的功能。自定义功能选择不灵活。安装升级步骤多,编译时间长。使用rpm命令直接安装升级,简单快捷。卸载没有uninstall命令,直接删除安装目录即可,不留任何残留。使用rpmuninstall命令进行卸载。安装后的区别:安装位置不同。RPM包的默认安装位置(仅供参考)rpm包的默认安装位置由包的开发者决定rpm包也可以通过--prefix=
选项指定安装目录目录说明/etc/init.d/启动脚本目录/etc/sysconfig/初始化环境配置文件目录/etc/配置文件安装目录/var/log/日志文件目录/usr/bin/可执行命令安装目录/usr/lib/function程序使用的库存放目录/usr/share/doc/基础软件手册存放目录/usr/share/man/help文件存放目录源码包安装位置安装源码包时需要指定安装位置,通常/usr/local/软件名称/安装位置影响RPM包安装的不同服务可以使用系统服务管理命令(service)进行管理。比如rpm包安装的nginx启动方法servicenginxstart/etc/rc.d/init.d/nginxstart源码包是无法通过服务管理命令管理的,因为没有安装在默认路径下,所以只能使用绝对路径这时候服务管理。源码包安装nginx启动方法示例/usr/local/nginx/sbin/nginx二、源码包安装软件0、安装注意事项源码包存放位??置:/usr/local/src软件安装位置:/usr/local如何使用确定安装过程报告错误,安装过程终止并出现错误、警告或无提示。以nginx为例演示源码包安装过程一、安装准备安装C语言编译器yum-yinstallgcc下载源码包wgethttp://nginx.org/download/nginx-1.14.0.tar.gz[root/usr/local/src]$wgethttp://nginx.org/download/nginx-1.14.0.tar.gz--2018-05-2309:16:19--http://nginx.org/download/nginx-1.14.0.tar.gzResolvingnginx.org(nginx.org)...95.211.80.227,206.251.255.63,2606:7100:1:69::3f,...正在连接到nginx。org(nginx.org)|95.211.80.227|:80...connected.HTTP请求发送,等待响应...200OKLength:1016272(992K)[application/octet-stream]Savingto:'nginx-1.14.0.tar.gz'100%[===================================================>]1,016,272164KB/sin8.8s2018-05-2309:16:29(113KB/s)-'nginx-1.14.0.tar.gz'已保存[1016272/1016272]解压源码包[root/usr/local/src]$tar-zxfnginx-1.14.0.tar.gz进入解压目录[root/usr/local/src]$cdnginx-1.14.0[根目录/usr/local/src/nginx-1.14.0]$lltotal732Kdrwxr-xr-x6vagrantvagrant4.0KMay2310:43auto/-rw-r--r--1vagrantvagrant281KApr1715:22CHANGES-rw-r--r--1vagrantvagrant428KApr1715:22CHANGES.rudrwxr-xr-x2vagrantvagrant4.0KMay2310:43conf/-rwxr-xr-x1vagrantvagrant2.5KApr1715:22configure*drwxr-xr-x4vagrantvagrant68May2310:43contrib/drwxr-xr-x2vagrantvagrant38May2310:43html/-rw-r--r--1vagrantvagrant1.4KApr1715:22LICENSEdrwxr-xr-x2vagrantvagrant20May2310:43man/-rw-r--r--1vagrantvagrant49Apr1715:22READMEdrwxr-xr-x9vagrantvagrant84May2310:43src/2.开始安装./configure软件配置及检测./configure-定义需要的功能选项-监控系统环境是否满足安装要求-将定义的功能选项和检测系统环境的信息写到`Makefile`文件中用于后续编辑查看帮助./configure--help[root/usr/local/src/nginx-1.14.0]$./configure--help--helpprintthismessage--prefix=PATHsetinstallationprefix--sbin-path=PATH设置nginx二进制文件pathname--modules-path=PATHsetmodulespath--conf-path=PATHsetnginx.confpathname...省略...--with-debugenabledebuglogging指定安装目录为/usr/local/nginx,指定命令文件所在目录为/usr/local/sbin/nginx./configure--prefix=/usr/local/nginx--sbin-path=/usr/local/sbin/nginx[root/usr/local/src/nginx-1.14.0]$./configure--prefix=/usr/local/nginx--sbin-path=/usr/local/sbin/nginxcheckingforOS+Linux3.10.0-229.el7.x86_64x86_64checkingforC编译器...找到+使用GNUC编译器+gcc版本:4.8.520150623(RedHat4.8.5-28)(GCC)checkingforgcc-pipeswitch...找到...省略...创建objs/MakefileConfiguration总结+使用系统PCRE库+未使用OpenSSL库+使用系统zlib库nginx路径前缀:“/usr/local/nginx”nginx二进制文件:“/usr/local/sbin/nginx”nginx模块路径:“/usr/local/nginx/modules"nginx配置前缀:"/usr/local/nginx/conf"nginxconf管理文件:“/usr/local/nginx/conf/nginx.conf”nginxpid文件:“/usr/local/nginx/logs/nginx.pid”nginx错误日志文件:“/usr/local/nginx/logs/error.log"nginxhttp访问日志文件:"/usr/local/nginx/logs/access.log"nginxhttp客户端请求正文临时文件:"client_body_temp"nginxhttp代理临时文件:"proxy_temp"nginxhttpfastcgi临时文件:"fastcgi_temp"nginxhttpuwsgi临时文件:"uwsgi_temp"nginxhttpscgi临时文件:"scgi_temp"查看生成的Makefile文件[root/usr/local/src/nginx-1.14.0]$lltotal736Kdrwxr-xr-x6vagrantvagrant4.0KMay2310:43auto/-rw-r--r--1vagrantvagrant281KApr1715:22CHANGES-rw-r--r--1vagrantvagrant428KApr1715:22CHANGES.rudrwxr-xr-x2vagrantvagrant4.0KMay2310:43conf/-rwxr-xr-x1vagrantvagrant2.5KApr1715:22configure*drwxr-xr-x4vagrantvagrant68May2310:43contrib/drwxr-xr-x2vagrant流浪汉38May2310:43html/-rw-r--r--1vagrant流浪汉1.4KApr1715:22LICENSE-rw-r--r--1rootroot370May2311:07Makefiledrwxr-xr-x2vagrantvagrant20May2310:43man/drwxr-xr-x3rootroot119May2311:07objs/-rw-r--r--1vagrantvagrant49Apr1715:22READMEdrwxr-xr-x9vagrantvagrant84May2310:43src/[root/usr/local/src/nginx-1.14.0]$catMakefiledefault:buildclean:rm-rfMakefileobjsbuild:$(MAKE)-fobjs/Makefileinstall:$(MAKE)-fobjs/Makefileinstallmodules:$(MAKE)-fobjs/Makefile模块升级:/usr/local/sbin/nginx-tkill-USR2`cat/usr/local/nginx/logs/nginx.pid`sleep1test-f/usr/local/nginx/logs/nginx.pid.oldbinkill-QUIT`cat/usr/local/nginx/logs/nginx.pid.oldbin`makecompile如果有编译错误,可以使用makeclean命令清除编译结果[root/usr/local/src/nginx-1.14.0]$makemake-fobjs/Makefilemake[1]:进入目录`/usr/local/src/nginx-1.14.0'cc-c-pipe-O-W-Wall-Wpointer-arith-Wno-unused-范围-Werror-g-Isrc/core-Isrc/event-Isrc/event/modules-Isrc/os/unix-Iobjs\-oobjs/src/core/nginx.o\src/core/nginx.c...省略...objs/ngx_modules.o\-ldl-lpthread-lcrypt-lpcre-lz\-Wl,-Esed-e"s|%%PREFIX%%|/usr/local/nginx|"\-e"s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|"\-e"s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|"\-e"s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|"\objs/nginx.8make[1]:离开目录`/usr/local/src/nginx-1.14.0'makeinstall编译安装[root/usr/local/src/nginx-1.14.0]$makeinstallmake-fobjs/Makefileinstallmake[1]:进入目录`/usr/local/src/nginx-1.14.0'test-d'/usr/local/nginx'||mkdir-p'/usr/local/nginx'...省略...test-d'/usr/local/nginx/logs'\||mkdir-p'/usr/local/nginx/logs'make[1]:Leavingdirectory`/usr/local/src/nginx-1.14.0'查看软件安装目录和命令软件安装目录所在目录[root~]$ll/usr/local/nginx/total4.0Kdrwxr-xr-x2rootroot4.0KMay2311:22conf/drwxr-xr-x2rootroot38May2311:22html/drwxr-xr-x2rootroot55May2311:28logs/localdirectory[root~]$ll/usr/local/sbin/total3.6M-rwxr-xr-x1rootroot3.6MMay2311:22nginx*;