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包的合法性