RPM全名是【RedHat Package Manager】,简称为RPM。当初这个软件管理的机制是由 Red Hat 开发出来的。 RPM 是以一种数据库记录的方式来将你所需要的软件安装到用户的 Linux 系统的一套管理机制。

RPM其实就是预先编译并打包成为RPM文件的软件程序,故而RPM有以下几大优点:

1.RPM 当中包含已经编译过的程序和配置文件等数据,可以让用户省去重新编译的困扰;
2. RPM 在安装前,会先检查系统的硬盘容量、操作系统版本等,避免一些档案错误带来的麻烦;
3. RPM 档案本身提供软件版本信息、相依属性软件名称、软件用途说明、软件所包含档案等信息,便于了解软件;
4.RPM 管理的方式使用数据库记录 RPM 档案的相关参数,便于升级、移除、查询不验证等功能。

下面我们说下rpm的相关命令,其实很简单,只要记住这些命令做什么的,

rpm:有安装(-i)、卸载(-e)、查询(-q)、升级(-u)、校验(-v)的功能

-----安装:rpm  -i [选项]  packagename

                       --test:测试并报告能否安装

                       --force:强制安装

                       --nodeps:忽略包之间的依赖关系

                       -v:显示详细信息,若要显示的更详细,则键入两个v

                       -replacepkgs:重新安装

                       -h:表示用#号这样的进度条来显示安装进度,一个#号代表2%的进度

 -----卸载:rpm -e name 
                        --test
                         --nodeps
   
 -----查询:   rpm -q  PKGNAME
                    rpm -qp /path/to/PACKAGE
                    rpm -qa  查看当前所有的包
                           -qi  pkaname查看包的详细信息
                           -ql pkgname查看包安装后会生成什么文件
                           -qf /path/to/file查看某个文件时由哪个包生成的
                           -qc 
                           --scripts 执行哪些脚本
   
 -----升级:
                   -Uvh:无老版本也可以安装
                   -Fvh:必须有老版本,只升级

-----校验:-V  列出被更改过的套件

 


 


yum:其实就是所有rpm包的一个集合,即仓库,yum的功能在于可以自行解决包之间的依赖关系,免去用户频繁的操作。

yum repo:yum仓库
里面有很多rpm包,有名称,版本,依赖关系,

为了兼容不同版本,yum以xml文档来组织rpm包
xml:扩展标记语言
repomd.xml 主要包含下满3个文件的时间戳和校验和
primary.xml.gz 每个rpm包及其包含的文件列表,还有包之间的依赖关系都在里面
filelists.xml.gz 所有rpm包所包含的文件的列表(为加速查询提供的)
other.xml.gz rpm包的额外信息,如changelog
comps*.xml 包组定义
这些文件通常都位于yum仓库目录下的

下面我们列出yun的一些简单命令和用法:

制作yum源
自己手动建立一个目录,将rpm包中的所有信息放进去就可以
命令:createrepo <目录> 自动遍历指定目录下的rpm包,并自动生成以上xml的四个文件

yum可以共享的机制有三种:
远程服务:
ftp://
http://
本地服务: 在本地文件中定义一个yum源,调用其路径即可
file:///

在客户端如何配置yum库:有一个分段式的配置文件/etc/yum.conf
在该配置文件里可以定义多个yum库

格式:
[repo1]
param1=value1
param2=value2
[repo2]
param1=value1
param2=value2

yum库:在/etc/yum.conf(main) 集中定义了yum库
如果有多个yum库还可以在/etc/yum.repo.d/*.repo定义多个以repo结尾的配置文件

定义一个yum仓库时:
[repoid]仓库名
name= 自定义yum的名称
baseurl= 指定yum仓库的顶端位置(包含了repodata目录的位置)
eg:baseurl=file:///media/cdrom/Server
enabled= 是否可用0:禁用1:启用
gpgcheck= 是不是检测来源合法性
gpgkey= /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-relese (gpgkey的路径)

yum库定义好之后,便可以使用yum命令了

yum list {all |[glob_expr]} |{available [glob_exp1]}|{ installed [glob_exp1]}
查看所有的rpm包,| 可选安装的包 | 已经安装的包 (其中可以使用通配符来查找指定的rpm包)

yum grouplist 查看包组
yum groupinstall "组名" 安装包组
yum groupinfo "组名" 查看包组的信息
yum groupremove "组名" 删除包组
yum groupupdate "组名" 升级包组

yum info '包名' 类似于rpm -qi
yum provides | whatprovides 查看包由谁提供
yum clean all 清除缓存
yum reinstall package1 重新安装已经存在的rpm包

yum localinstall 安装本地的rpm包,后面跟具体的路径
类似于 rpm -ivh

yum -y 自动回答为yes
--nogpgcheck 不再检查rpm包的合法性