一、Linux包分类1.1源码包优点:开源,如果你够用能力,可以修改源码;您可以自由选择所需的功能;软件编译安装,更适合自己的系统,更稳定,更高效;易于卸载;缺点:安装过程步骤较多,特别是在安装大型软件集合时搭建LAMP环境(如LAMP环境)时,容易出现拼写错误;编译过程耗时较长,安装时间比二进制安装时间长;由于是编译安装,一旦在安装过程中报错,新手很难解决;注意:对效率有要求的软件,必须安装源码包版本,因为是本地编译的,兼容性和效率更高,rpm包是软件开发商提供的流行版本,可以用于做的应用不注重效率。1.2二进制包(RPM包)优点:包管理系统简单,只需几条命令即可实现包的安装、升级、查询、卸载;安装速度比源码包快很多;缺点:编译后,不能再看源码;功能选择不如源码包灵活;依赖性;1.3yum在线安装可以轻松解决RPM安装依赖文件,单条命令可以帮助用户从网上(或本地)找到安装包进行安装。注意:RedHat的yum是付费服务,而CentOS的yum是免费服务。1.4脚本安装包所谓脚本安装包,如:lnmp/lampLNMP一键安装包,就是把复杂的软件包安装过程写成程序脚本,初学者执行脚本即可实现一键安装。安装。但是实际安装的是源码包和二进制包。优点:安装简单快捷;缺点:完全失去定制;总结:其实Linux中只有两种软件安装包,源码包和二进制(RPM)包。2.源码包安装(推荐方法)2.1源码包和rpm包的区别安装前的区别:概念上的区别安装后的区别:安装位置不同2.2安装位置不同的影响2.2.1rpm包的安装位置rpm包的安装位置可以使用系统服务管理命令(service)来管理服务。例如:rpm包安装的apache的启动方式为:/etc/rc.d/init.d/httpdstartservicehttpdstart请注意:rpm包的安装也是可以的指定安装位置,servicecommand是redhat的专有命令,所以/etc/rc.d/init.d/XXXXstart是最标准的启动方式。如果指定了rpm包的安装目录,对不起,这两种启动方式都不能用。2.2.2源码包安装位置安装在指定位置,一般为:/usr/local/软件名称/源码包安装的服务只能用绝对路径管理。2.2.3总结不能使用[service]命令启动源码包的服务,因为源码包的安装位置是用户指定的,位置不统一。rpm包安装好后一般放在[/etc/rc.d/init.d]目录下,执行[service]命令时会自动搜索这个目录,所以安装的服务rpm包可以使用[service]命令。综上所述,不同的安装位置有不同的启动方式。使用绝对路径启动程序的方法很常见,启动程序的方法通常写在软件包中。如果将源码包安装后的启动程序复制到[/etc/rc.d/init.d]目录下,也可以用[service]命令执行。源码包必须指定安装目录。如果不指定,它会像rpm一样到处安装。但是,它不能用-e卸载。一般指定的目录是/usr/local(可以看Windows的ProgramFiles)。同时,源码包不能用service命令启动,因为service命令会搜索/etc/rc.d/init.d/目录来启动服务。2.3源码包安装步骤(要点)2.3.1安装准备和源码包获取由于源码是用C语言编写的,所以首先要安装C语言编译器:gcc从官网下载源码包。如果是下载到Windows,可以使用winSCP上传到linux注意:如果已经安装了二进制包,源码包也可以继续安装,因为两者的安装目录不同。但是,由于端口冲突,不建议这样做。2.3.2源码包安装的详细过程下面以安装apache2为例2.3.2.1确保有gcc编译器gcc-v#可以打印你使用的gcc版本信息2.3.2.2下载源码包,解压http://mirror.bit。edu.cn/apache/httpd/用winSCP拖到/local/usr/src目录下保存解压:tar-zvxfhttpd-2.2.31.tar.gz解压后目录为【httpd-2.2.31]2.3。2.3安装安装时必须进入解压目录[httpd-2.2.31]安装步骤1.执行[./configure]命令,用于软件配置和检查(基本上每个源码包都会有这个命令,即使如果没有该命令,将提供相关的替代命令),它具有以下功能:定义所需的功能选项;检查系统环境是否满足安装要求;将第一项中定义的功能选项和第二项中的检测系统环境信息组合写入Makefile文件中,供后续编辑。(后面的[make]和[makeinstall]命令都会依赖这个文件)执行命令[./configure--prefix=/usr/local/apache2],用于指定安装位置为:[/usr/local/apache2]([apache2]目录不需要提前创建,执行[makeinstall]命令时会自动创建)。命令执行后,会在当前目录下生成一个Makefile文件。检查依赖库:makedepend安装步骤2.执行[make]命令编译源码(这一步通常比较耗时)安装步骤3.执行[makeinstall]命令安装程序。此时,[/usr/local/apache2]目录2.3.2.4提示如果命令执行过程终止,出现错误、warn或无提示,则表示错误;否则,一切正常。如果在执行[./configure]或[make]命令时出现错误,不需要删除[/usr/local/apache2]目录,因为程序还没有真正安装。只需要执行【makeclean】命令,用于清除缓存、临时文件等,将安装环境恢复到卸载状态。如果执行【makeinstall】命令报错,需要删除【/usr/local/apache2】目录,执行【makeclean】命令。3.RPM命令管理3.1RPM包的来源所有RPM包都在系统光盘的Packages目录下3.2RPM包命名规则包名-软件版本-软件发布时间-适用Linux平台-适用硬件平台-包扩展名httpd-2.2.15-15.el6.centsos.1.i686.rpmhttpd包名-2.2.15软件版本-15发布次数-el6.centos适用Linux平台-i686适用硬件平台-rpm包扩展,el6为RedhatEnterprise版本3.3RPM包依赖a。树依赖:a->b->c解决方法:从后往前安装b。环依赖:a->b->c->a解决方法:一条命令安装c。模块依赖:库文件依赖,库也叫模块,是linux中的一个函数,它有一个典型的特征,就是以[.so.number],它依赖的其实是一个文件,而不是一个包。该文件隐藏在软件包中。只要我们安装文件所在的包,文件就会被安装。解决方法:登录www.rpmfind.net网站,输入库文件名找到对应的rpm包,然后安装。在线yum安装可以轻松解决依赖文件,一条命令可以帮助用户从网上(或本地)找到安装包进行安装。注意:RedHat的yum是付费服务,而CentOS的yum是免费服务。3.4RPM安装rpm-ivh完整包名-i(install)install;-v(详细)详细信息;-h(哈希)进度;3.5RPM升级和卸载升级命令rpm-Uvh完整包名(要升级的软件版本),如果没有安装本软件的版本,该命令可以替代rpm-ivh。卸载命令rpm-e包名(如Httpd,不需要完整的包名)这个命令不同于安装和升级,它可以在任意目录下运行,原理是去/var/lib中的数据库/rpm目录(如__db0)在数据库中找到对应的软件包(已经安装的rpm包都在这些数据库中),然后卸载。安装或卸载时最好不要使用--nodeps选项。rpm安装包的安装位置由包开发者决定,安装位置会很乱,所以最好使用rpm-e命令卸载。与二进制安装相比,源码安装指定了安装目录。卸载时只需要删除相应的目录即可彻底卸载,不留任何残留。3.6RPM包查询1.查询是否安装rpm-q包名rpm-qa#q==>查询a==>all查询所有安装的RPM包rpm-qa|grephttpdgrep后接正则表达式,find后接通配符2.查询包详情rpm-qi包名rpm-qip包全名#i==>infomation#p==>package:query**`notinstalledpackage`**information3.查询包中文件的安装位置rpm-qlpackagename#l==>list#-p==>package:查询未安装包的信息可以查看包作者要安装的包InstallationlocationRPM包默认安装位置4.查询系统文件属于哪个RPM包rpm-qfsystemfilename#f==>file:查询系统文件属于哪个软件包文件必须通过RPM包安装5.查询软件包依赖rpm-qR包名R==>requires:查询包依赖p==>package:查询卸载包信息3.7RPM包验证rpm-V安装包名-V==>(verify):之后验证指定RPM包中的文件,执行rpm-Vhttpd后没有提示,说明该文件没有被任何方式修改判断本地apache是??否与官方一致,从而判断是不是已被修改。修改文件/etc/httpd/conf/httpd.conf,在注释行添加任意内容后,再次执行提示:S.5...T.c/etc/httpd/conf/httpd.confverifythe8inthecontent两条信息:S:文件大小是否改变M:文件的类型或文件的权限(rwx)是否改变5:文件的MD5校验和是否改变(可以看成文件内容是否改变)D:设备的主从码是否改变ChangeL:文件路径是否改变U:文件的属主(owner)是否改变G:所属组是否改变文件已更改T:文件的修改时间是否已更改验证内容中的文件类型:c(configfile):配置文件d(documentation):一般文档g(ghostfile):“ghost”文件,罕见,即本RPM包中不应该包含该文件L(licensefile):授权文件r(readme):描述文件MD5校对校验功能:用于校验文件的完整性(内容是否文件已更改)。比如官网下载的游戏,官方会给一个MD5验证码。下载的游戏通过专用的MD5验证工具验证后,会生成一个MD5验证码。比较两个验证码,看是否一致。注意下载的文件可能会丢包,文件可能会损坏,也可能被别人篡改成为木马等。四、yum在线安装4.1yum源文件yum的优点:把所有的软件包都放在官方服务器,在线安装yum时,可以自动解决依赖问题。(rpm缺点:在安装过程中,rpm包依赖性太强)。Redhat的yum在线安装需要付费,而CentOS不需要。在【/etc/yum.repos.d/】目录下,默认有4个yum源文件,其中【CentOS-Base.repo】是基本的yum源文件,如果能上网的话,需要默认生效,Others默认关闭。4.2yum命令查询yunlist--查询所有可用软件包列表yumsearchkeyword--搜索服务器上所有与关键字相关的包安装yum-yinstall包名(-y自动回答yes)yum安装只写包名字就是这样!eg:yum-yinstallgcc--clanguagecompilerupgrade/uninstallUpgrade:yum-yupdatepackagename-update:upgrade;-y:自动回答是;卸载:yum-yremove包名-remove:uninstall;-y:自动回答yes;!!!服务器采用最小安装,用什么软件装什么,尽量不要卸载!!!①LANG=en_US:切换为英文;(暂时有效)②LANG=zh_CN.utf8:切换为中文;(暂时有效)5、脚本安装5.1脚本安装包所谓脚本安装包如:lnmp/lampLNMP一键安装包,就是把复杂的软件包安装过程写成一个程序脚本,初学者可以执行脚本,实现一键安装。但是实际安装的是源码包和二进制包。优点:添加命令,快捷方便缺点:1.无法定义安装软件的版本;2、无法定义所需的软件功能;3、源码包的优势几乎完全丧失;5.2脚本安装包:准备工作1、本节以安装LNMP1.0为例,所以需要停止之前安装的apache和mysql服务(最好删除安装的apache[/usr/local/apache2]在源码包中)nignx很好,可以支持更大的并发。apache默认的并发是400,如果你增加,比如>2000,你需要测试一下。如果稳定,可以继续增加。nginx可以不测试设置为50000(用户同时刷新网页)。可以说一台nignx服务器顶三台apache。2、确保yum源正常:可以使用[yumlist]命令进行测试。(如果是光盘yum源,记得挂载光盘)3、关闭SELinux和防火墙:a.永久关闭SELinux的方法:编辑文件[/etc/selinux/config],将[SELINUX=enforcing]改为[SELINUX=disabled],然后重启系统。b.永久关闭防火墙的方法:[chkconfigiptablesoff],打开为:[chkconfigiptableson];暂时关闭防火墙的方法:【serviceiptablesstop】,打开方式为:【serviceiptablesstart】。4、脚本安装过程中,会卸载系统中已有的apache、mysql、php等。以下是部分安装脚本【centOS.sh】:...部分内容省略...yuminstall-yntpntpdate-upool.ntp.orgdaterpm-qa|grephttpdrpm-ehttpdrpm-qa|grepmysqlrpm-emysqlrpm-qa|grepphprpm-ephpyum-yremovehttpd*yum-yremovephp*yum-yremovemysql-servermysqlyum-yremovephp-mysql......部分内容省略......注意:安装后,如果安装卡在[php-fpm],一般表示安装成功,但是卡在[php-fpm](物理机很少见,虚拟机比较常见),解决最好的方法是:使用命令[pkill-9php-fpm]杀死[php-fpm]进程,然后重启进程[/etc/rc.d/init.d/php-fpmstart]。LNMP一键安装包安装地址完整!
