优点:
开源linux系统编程,假如有足够的能力linux软件安装教程,可以更改源代码;
可以自由选择所需的功能;
软件是编译安装,所以愈发适宜自己的系统,愈发稳定、效率更高;
卸载便捷;
缺点:
安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误;
编译过程时间较长,安装比二补码安装时间长;
由于是编译安装,安装过程中一旦报错菜鸟很难解决;
注:对于要求效率的软件,要安装源码包版本,由于是本机编译,更具有兼容性和效率,而rpm包是软件开发者提供的大众版本,可用于不重视效率的应用。
1.2二补码包(RPM包)
优点:
包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;
安装速率比源码包安装快的多;
缺点:
经过编译,不再可以看见源代码;
功能选择不如源码包灵活;
依赖性;
1.3yum在线安装
可以便捷的解决RPM安装依赖文件,一条命令就可以帮用户从网上(本地也可以)找到安装包进行安装。
注:RedHat的yum是收费服务,而CentOS的yum是免费服务。
1.4脚本安装包
所谓的脚本安装包如:lnmp/lampLNMP一键安装包嵌入式linux论坛,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行脚本实现一键安装。但实际安装的还是源码包和二补码包。
优点:安装简单、快捷;
缺点:完全失去了自定义性;
总结:虽然Linux中软件包只有源码包和二补码(RPM)包两种软件安装包。
二、RPM命令管理2.1RPM包的来源
所有RPM包都在系统光碟的Packages目录中
2.2RPM包命名规则
软件包名-软件版本-软件发布的次数-适宜的Linux平台-适宜的硬件平台-包扩充名
httpd-2.2.15-15.el6.centsos.1.i686.rpm
httpd软件包名-2.2.15软件版本-15发布的次数-el6.centos适合的Linux平台-i686适应的硬件平台-rpm包扩展名,el6是redhat的企业版
2.3RPM包依赖性
a、树形依赖:a->b->c 解决方法:从后往前安装
b、环形依赖:a->b->c->a 解决方法:放在一条命令中安装即可
c、模块依赖:库文件依赖,库也叫模块,就是linux当中的函数,它有一个典型的特征,就
是以【.so.数字】结尾,它依赖的其实是一个文件,而不是软件包。该文件藏身在某一
个软件包当中。我们只要将该文件所在的软件包安装上,该文件也就安装了。解决方法:
登录www.rpmfind.net网站,输入库文件名称查询到对应的rpm包,然后安装即可。
2.4yum在线安装
可以便捷的解决依赖文件,一条命令就可以帮用户从网上(本地也可以)找到安装包进行安装。
注:RedHat的yum是收费服务,而CentOS的yum是免费服务。
2.5RPM安装
rpm-ivh包全名
-i(install) 安装; -v(verbose) 详细信息; -h(hash) 进度;
2.6RPM升级和卸载
升级命令
rpm-Uvh包全名(要升级到的软件版本),假如没有安装这个软件的任何版本,这个命令可以取代rpm-ivh。
卸载命令
rpm -e 包名(比如Httpd,不需要包全名)
这个命令不同于安装和升级,它可以在任何目录运行,原理是去/var/lib/rpm目录中的数据库(如__db0)中查找对应的软件包(早已安装过的rpm包都在这种数据库中),之后卸载。--nodeps这个选项不管是在安装和卸载的时侯,最好都不要使用。
rpm安装包安装的位置是由软件包开发者决定的,安装后的位置会特别零乱,所以最好是使用rpm-e命令卸载。
相对于二补码安装,源码安装是指定安装目录了,卸载的时侯只须要删掉对应的目录就可以完全的卸载linux软件安装教程,不留一点残余。
2.7RPM包查询1.查询是否安装
rpm -q 包名
rpm -qa
q==>querya==>all
查询所有早已安装的RPM包
rpm -qa | grep httpd
grep后跟正则表达式,find后跟键值
2.查询软件包详尽信息
rpm -qi 包名
rpm -qip 包全名
i==>infomation
p==>package:查询未安装包信息
有时遇见问题,可依照未安装包信息中所提供的网站进行查询资料
3.查询包中文件安装位置
rpm -ql 包名
l==>list-p==>package:查询未安装包信息
可查看包作者欲将包安装的位置
RPM包默认安装位置
4.查询系统文件属于那个RPM包
rpm -qf 系统文件名
f==>file:查询系统文件属于那个软件包
该文件必须是通过RPM包安装的
5.查询软件包的依赖性
rpm -qR 包名
R==>requires:查询软件包的依赖性p==>package:查询未安装包的信息
2.8RPM包校准
rpm -V 已安装的包名
-V==>(verify):校准指定RPM包中的文件执行rpm-Vhttpd后,无任何提示,代表该文件没有被做任何更改
判定本地的apache与官方给出的是否一致,因而判定是否被人更改更改文件/etc/httpd/conf/httpd.conf,在注释行添加任意内容后,再度执行提示:S.5....T.c/etc/httpd/conf/httpd.conf
验证内容中的8个信息:
S : 文件大小是否改变
M : 文件的类型或文件的权限( rwx )是否被改变
5 : 文件MD5 校验和是否改变( 可以看成文件内容是否改变 )
D : 设备的主从代码是否改变
L : 文件路径是否改变
U : 文件的属主( 所有者 ) 是否改变
G : 文件的属组是否改变
T : 文件的修改时间是否改变
验证内容中的文件类型:
c (config file) : 配置文件
d (documentation) : 普通文档
g (ghost file) : "鬼"文件, 很少见, 就是该文件不应该被这个RPM包包含
L (license file) : 授权文件
r (read me) : 描述文件
MD5校验
作用:拿来校准文件的完整性(文件内容是否被改变)。
比如,在官网下载的游戏,官方会给出MD5校准码,将下载的游戏通过专用的MD5校准工具校准后生成一份MD5校准码,对比两份校准码是否一致,不一致则说明,下载的文件可能丢包,可能文件受损,可能被其他人动过四肢仍然木马等。
三、yum在线安装3.1yum源文件
yum的优点:将所有软件包放在官方服务器上,当进行yum在线安装时,可以手动解决依赖性问题。(rpm缺点:安装过程中,rpm包依赖性太强)。
redhat的yum在线安装须要付费,CentOS不须要。
在【/etc/yum.repos.d/】目录中,默认有4个yum源文件,其中【CentOS-Base.repo】是基本yum源文件,假如我们能上网,那它是默认生效的,而其他的都是默认不生效的。
mirrorlist和baseurl一个是主站点,一个是辅助站点,这两个有一个就行。可以找一个163或复旦学院的yum源更换。
[root@CentOS6 ~]# cd /etc/pki/rpm-gpg
[root@CentOS6 rpm-gpg]# ll
总药量16
-rw-r--r--. 1 root root 1706 11月 27 2013 RPM-GPG-KEY-CentOS-6
-rw-r--r--. 1 root root 1730 11月 27 2013 RPM-GPG-KEY-CentOS-Debug-6
-rw-r--r--. 1 root root 1730 11月 27 2013 RPM-GPG-KEY-CentOS-Security-6
-rw-r--r--. 1 root root 1734 11月 27 2013 RPM-GPG-KEY-CentOS-Testing-6
3.2光碟yum源搭建:
1、挂载光碟mkdir/media或mnt/cdrom:构建挂载点;mount/dev/cdrom/media或mnt/cdrom:挂载光碟;
2、使网路yum源失效:
cd/etc/yum.repos.d/:步入yum源目录;mvCentOS-Base.repoCentOS-Base.repo.bak:更改Yum源文件后缀名,使其失效;(判定yum源是按照后缀名repo来实现的,更改后缀名则可以使该yum源失效)
3、使光碟yum源生效:vimCentOS-Media.repobaseurl=file:///mnt或media/cdrom:地址为光碟挂载地址,假如有多余的光碟挂载点,须要注释掉不存在或不须要使用的光碟挂在地址;enabled=1:把enabled=0改为enabled=1,使该yum源配置生效;
4、命令:yumlist:该命令可验证目前使用的yum源有什么可用的rpm包;
3.3yum命令
1.查询
yun list --查询所有可用软件包列表
yum search 关键字 --搜索服务器上所有和关键字相关的包
2.安装
yum -y install 包名 (-y 自动回答yes)
yum安装只写包名即可! eg:yum -y install gcc --c语言编译器
3.升级/卸载
升级:yum-yupdate包名
-update:升级;
-y:自动回答yes;
卸载:yum-yremove包名
-remove:卸载;
-y:自动回答yes;
!!!服务器使用最小化安装,用哪些软件安装哪些,尽量不要卸载!!!
4.yum软件组管理命令yumgrouplist:列举所有可用的软件列表;yumgroupinstall软件组名:安装指定软件组,组名可以由grouplist查询下来;yumgourpremove软件组名:卸载指定软件组;
①LANG=enUS:切换至英语;(临时生效)②LANG=zhCN.utf8:切换至英文;(临时生效)
四、源码包安装4.1源码包与RPM包区别
安装之前的区别:概念上的区别安装以后的区别:安装位置不同
4.2安装位置不同带来的影响4.2.1rpm包安装位置
rpm包安装的服务可以使用系统服务管理命令(service)来管理,比如:RPM包安装的apache的启动方式是:
/etc/rc.d/init.d/httpd start
service httpd start
请注意:rpm包安装也是可以指定安装位置的,service命令是redhat的专有命令,所以/etc/rc.d/init.d/XXXXstart是最标准的启动方法。假如为rpm包指定了安装目录,抱歉,两个启动方式都不能用了。
4.2.2源码包安装位置
安装在指定位置当中,通常是:
/usr/local/软件名/
源码包安装的服务,只能用绝对路径进行服务的管理。
4.2.3总结
1、源码包是不能使用【service】命令来启动服务,由于源码包的安装位置由用户指定,置于哪并不统一。而rpm包安装后,一般都是置于【/etc/rc.d/init.d】目录中的,而【service】命令执行时,会手动搜索该目录,所以rpm包安装的服务可以使用【service】命令。2、综上所述,安装位置不同,启动方式是有区别的。3、使用绝对路径启动程序的方式是通用的,一般软件包中会写上启动程序的方式的。4、如果将源码包安装后的启动程序复制到【/etc/rc.d/init.d】目录中,则也是可以使用【service】命令执行的。5、源码包一定要指定安装目录,不指定的话,会和rpm一样安装的四处都是,然而,不能用-e卸载了。通常指定目录是/usr/local(可以看出Windows的ProgramFiles)。同时,源码包不能用service命令启动的,缘由在于,service命令是搜索/etc/rc.d/init.d/目录来启动服务的。
4.3源码包安装步骤
4.3.1安装打算和源码包获取
1、由于源码都是c语言写的,所以要先安装c语言编译器:gcc。
2、从官方网站下载源码包,若是下载到了windows里面,可以使用winSCP传到linux上。注:若已安装了二补码包,则源码包也是可以继续安装的,由于二者安装目录不一样。并且,并不建议这样做,由于端口会冲突。
对于要求效率的软件,要安装源码包版本,由于是本机编译,更具有兼容性和效率,而rpm包是软件开发者提供的大众版本,可用于不重视效率的应用。
4.3.2源码包安装过程
下边以安装apache2为例1.确保有gcc编译器。
2.下载源码包:用winSCP拖到/local/usr/src目录下保存,解压缩后的目录为【httpd-2.2.31】
安装时必须步入到解压缩后的目录【httpd-2.2.31】中:
①、执行【./configure】命令,该命令用于软件配置与检测(基本上每位源码包就会有该命令,虽然某些的没有该命令,也会提供相关取代命令),它有以下几点功能:
命令执行后,会在当前目录生成Makefile文件。
②、执行【make】命令,编译源码(这一步一般比较历时);③、执行【makeinstall】命令,安装程序,此时会创建【/usr/local/apache2】目录。注:假如命令执行过程中发生中止,但是出现error、warn或no提示,则表明出错,否则,一切正常。若执行【./configure】或【make】命令时出现错误,是不须要删掉【/usr/local/apache2】目录的,由于程序还没有真正安装。只须要执行【makeclean】命令即可,该命令用于去除缓存、临时文件等,使安装环境恢复到未安装状态。若执行【makeinstall】命令晨报错,则须要删掉【/usr/local/apache2】目录,但是执行【makeclean】命令才行。
五、脚本安装5.1脚本安装包
所谓的脚本安装包如:lnmp/lampLNMP一键安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行脚本实现一键安装。但实际安装的还是源码包和二补码包。
优点:加单,快速,便捷;
缺点:
不能定义安装软件的版本;
不能定义所须要的软件功能;
源码包的优势几乎完全失去;
5.1脚本安装包:打算工作
1、本节以安装LNMP1.0为例,所以须要先停止之前安装的apache和mysql服务(最好也将源码包安装的apache【/usr/local/apache2】删除)
nignx十分优秀,可以支持更大的并发量。apache的默认并发量是400,假如给它改大,例如到>2000,就要测一测了,若果稳定能够再继续降低。nginx不用测试就可以设置到50000(用户同一时刻刷新网页)。可以说一台nignx服务器顶3台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】的部份内容:......部份内容省略......
yum install -y ntp
ntpdate -u pool.ntp.org
date
rpm -qa|grep httpd
rpm -e httpd
rpm -qa|grep mysql
rpm -e mysql
rpm -qa|grep php
rpm -e php
yum -y remove httpd*
yum -y remove php*
yum -y remove mysql-server mysql
yum -y remove php-mysql
......部份内容省略......
注:安装后,假如安装卡在了【php-fpm】那里,一般表示已安装成功,只是【php-fpm】那里卡住了(化学机稀少,但虚拟机比较常见),解决的方式就是:使用命令【pkill-9php-fpm】杀掉【php-fpm】进程,之后重新启动该进程【/etc/rc.d/init.d/php-fpmstart】即可。