2-1:
软件包分类:
一、源码包 

  //脚本安装包;
源码包优点:
   ①开源,如果有足够的能力,可以修改源代码;
   ②可以自由选择所需的功能;
   ③软件是编译安装,所以更加适合自己的系统,更加稳定、效率更高;
   ④卸载方便;
源码包缺点:
   ①安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误;
   ②编译过程时间较长,安装比二进制安装时间长;
   ③因为是编译安装,安装过程中一旦报错新手很难解决;

脚本安装包:
所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行脚本实现一键安装。但实际安装的还是源码包和二进制包
   ①优点:安装简单、快捷;
   ②缺点:完全丧失了自定义性;

二、二进制包(RPM包)   //
二进制包的优点:
   ①包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;
   ②安装速度比源码包安装快的多;
二进制包的缺点:
   ①经过编译,不再可以看到源代码;
   ②功能选择不如源码包灵活;
   ③依赖性;


3-1:
一、RPM包的来源:
   RPM包在系统光盘的Packages目录中;
二、RPM包命名规则:
httpd-2.2.15-15.el6.centos.1.i686.rpm
   ①-httpd      //软件包名;
   ②-2.2.15      //软件版本;
   ③-15      //软件发布的次数;
   ④-el6.centos   //适合的linux平台;
   ⑤-i686      //适合的硬件平台;
   ⑥-rpm      //rpm包扩展名;
三、RPM包依赖性:
   ①树形依赖:a→b→c
   ②环形依赖:a→b→c→a
   ③模块依赖:模块依赖,查询网站:www.rpmfind.net(依赖包   ④名如果是以“.so”结尾的,则表示是一个库文件,该库文件是存放在某一个安装包中、查询该库文件存放在哪个安装包中可通过网址“www.rpmfind.net”查询;


3-2:

一、包全名与包名:

包全名:操作的包是没有安装的软件包是时,使用包全名。而且需要注意路径;

包名:操作已经安装的软件时(如卸载、查询),使用包名,是搜索/var/lib/rpm/中的数据库;

二、RPM安装:
⑴rpm -ivh 包全名
⑴选项:
   ①-i(install)   //安装;
   ②-v(verbose)   //显示详细信息;
   ③-h(hash)   //显示进度;
   ③--nodepes   //不检测依赖性;(!!!实际工作中,是不允许使用的!!!)


3-3:

⑴RPM包升级:
rpm -Uvh 包全名
选项:
   ①-U(upgrade/update)   //升级
⑵RPM包卸载:
rpm -e 包名
选项:
   ①-e(erase)   //卸载
   ②--nodeps   //不检查依赖性(!真实环境绝对不允许使用!)
   

3-4:

⑴查询是否安装:
rpm -q 包名   //查询包是否安装;
rpm -qa      //查询所有已经安装的RPM包;
选项:
   ①-q(query):查询;
   ②-a(all):所有;
⑵查询软件包详细信息:
rpm -qi 包名
选项:
   ①-i(information):查询软件信息;
   ②-p(package):查询未安装包信息;
⑶查询包中文件安装位置:
rpm -ql 包名
选项:
   ①-l(list):列表;
   ②-p(package):查询未安装包信息;
RPM包常规默认安装位置
   ①/etc/   :配置文件安装目录;
   ②/usr/bin/   :可执行的命令安装目录;
   ③/usr/lib/   :程序所使用的函数库保存位置;
   ④/usr/share/doc/   :基本的软件使用手册保存位置;
   ⑤/usr/share/man/   :帮助文件保存位置;
⑷查询系统文件属于哪个RPM包:
rpm -qf 系统文件名
选项:
   -f(file):查询系统文件属于哪个软件包;
⑸查询软件包的依赖性:
rpm -qR 包名
选项:
   ①-R(requires):查询软件包的依赖性;
   ②-p(package):查询未安装包信息;


3-5:

一、RPM包校验:
rpm -V(大写V) 已安装的包名
   V(verify):校验指定RPM包中的文件;
   ##!!该命令执行之后,如果没有任何回馈信息,则表示该文件一切正常!!
   验证内容中的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)

二、RPM包中文件提取:
rpm2cpio 包全名 | cpio -idv .文件绝对路径
   ①-rpm2cpip   //将rpm包转换为cpio格式的命令;
   ②-cpip   //是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件;

cpio 选项 < [文件|设备]
   ①-i:copy-in模式,还原;
   ②-d:还原时自动新建目录;
   ③-v:显示还原过程;


3-6:

yum源文件:
vi /etc/yum.repos.d/*.repo
   ①[base]:容器名称,一定要放在[]中;

   ②name:容器说明,可以自己随意填写;

   ③mirrorlist:镜像站点,这个可以注释掉;

   ④baseurl:yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址;

   ⑤enabled:此容器是否生效,如果不写或写成enabled=1都是生效,写成enabled=0就是不生效;

   ⑥gpgcheck:如果是1是指RPM的数字证书生效,如果是0则不生效;(真实环境中,最好启用)

   ⑦gpgkey:数字证书的公钥文件保存位置。不用修改;

3-7:

光盘yum源搭建:
1、挂载光盘
   mkdir /media或mnt/cdrom:建立挂载点;
   mount /dev/cdrom /media或mnt/cdrom:挂载光盘;
2、使网络yum源失效:
   cd/etc/yum.repos.d/:进入yum源目录;
   mv CentOS-Base.repo CentOS-Base.repo.bak:修改Yum源文件后缀名,使其失效;(判断yum源是根据后缀名repo来实现的,修改后缀名则可以使该yum源失效)
3、使光盘yum源生效:
   vim CentOS-Media.repo
   baseurl=file:///mnt或media/cdrom:地址为光盘挂载地址,如果有多余的光盘挂载点,需要注释掉不存在或不需要使用的光盘挂在地址;
   enabled=1:把enabled=0改为enabled=1,使该yum源配置生效;
4、命令:yum list:该命令可验证目前使用的yum源有哪些可用的rpm包;


3-8:
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽

①②③④⑤⑥⑦⑧⑨⑩
yum命令
1、常用yum命令:
   查询:
      ①yum list:查询目前使用的yum源中所有可用软件包列表;
      ②yum search 关键字:搜索服务器上所有和关键字相关的包;

   安装:
      ①yum -y install 包名
         ⑴-install:安装;
         ⑵-y:自动回答yes;
      ②例如:yum -y install httpd

   升级:
      ①yum -y update 包名
         ⑴-update:升级;
         ⑵-y:自动回答yes;
   卸载:
      ②yum -y remove 包名
         ⑴-remove:卸载;
         ⑵-y:自动回答yes;
!!!服务器使用最小化安装,用什么软件安装什么,尽量不要卸载!!!

2、yum软件组管理命令
   yum grouplist:列出所有可用的软件列表;
   yum groupinstall 软件组名:安装指定软件组,组名可以由grouplist查询出来;
   yum gourpremove 软件组名:卸载指定软件组;

①LANG=en_US:切换至英文;(临时生效)①
②LANG=zh_CN.utf8:切换至中文;(临时生效)②