RPM和yum

RPM是什么呢?“RedHat Package Manager”;简单来说就是一套linux系统中的软件管理机制,使用命令也是rpm,rpm在软件传输与安装上很方便,有优点就有缺点,缺点就是没有解决依赖性关系,依赖性关系是什么呢?就是安装的这个软件需要依赖其他的一些软件来运行,而rpm无法解决这个依赖性关系。这也就有了yum来解决这个问题,好了介绍到这里,接下来看看这两个工具怎么用吧!
rpm
首先,安装软件是root的工作,所以只有root能操作rpm。

[root@localhost ~]# rpm -i tree

下面还有更多选项
-i 包安装
-iv显示过程
-ivv显示详细过程
-h显示进度
-ivh 显示过程及百分比
-i –test仅测试,不安装
–nodeps 忽略安装或卸载的依赖性(程序运行时需要调用某些文件)
–replacepkgs重复安装已安装的包,文件覆盖
–replacefiles将要安装安装包的部分文件与其他已安装的包文件冲突,继续安装,不覆盖
–oldpackage已安装过新版本,现在安装旧版本
–force 强制安装
rpm包查询

[root@localhost ~]# rpm -q tree
tree-1.5.3-3.el6.x86_64
 -q 包名 查看rpm包版本号
 -qa查看所有已安装的rpm包,可文件名通配符模糊查询
 -qf 文件路径   查询指定文件来自于哪一个rpm包
 -qi 包名  列出已安装的这个包的标准详细信息
 -ql 包名 列出软件包提供了的所有文件
  -qc httpd 查询软件包提供的配置文件
  -qd httpd 文档文件
  -q -scripts kernel 列出已安装rpm包自带的安装前和后脚本
  -qp [可跟选项] rpm路径    查询信息的数据来自于rpm包
  -q --provides 查询某个包提供了哪些能力
  -qa --provides 查询系统所有能力
  -q --whatprovides webserver 查询某个能力由哪个rpm包提供
  -q --whatrequires webserver 查询某个能力被哪个rpm包所依赖
  ***rpm包校验***
[root@localhost ~]# rpm -V tree
   -V  name 查询这个包跟最开始安装时有什么不同
   rpm2cpio rpm包名字 |cpio -id “.*conf”  (cpio归档类型文件)
   将rpm类型文件转换为cpio型文件
   rpm -K 检查包的完整性和签名
   rpm --import  /media/KEYNAME  导入公钥   
   rpm -K 检验签名

yum

相比于rpm来说,yum就更好用了,因为这个命令直接使用就行了,但是这个最重要的就是yum源的配置,起始yum使用的还是rpm,只是用一个python脚本解决了rpm的依赖性关系,所以yum的使用很简单
首先是安装
yum install 软件包名

[root@localhost ~]# yum install php

这个安装过程是交互式的,所以安装过程中需要输入y(yes),当然,可以使其为非交互式的 ,-y就能实现自动应答,不再询问。
yum包查询
yum list 列出所有包(默认列出所有)
支持文件名通配符,(默认精确)可模糊搜索
all 也是列出所有
installed 列出已安装的包
@repoid 表示该包安装自指定的仓库
installed 表示该包由rpm命令手工安装
updates 列出可更新的包
yum search 关键字 可模糊搜索出描述位的信息
yum provides “*/rz”
搜索一个文件来自于哪个rpm包,可以是未安装的包
更新包就是update
卸载包
yum remove 不会卸载存在依赖性关系的包
yum deplist 包名 列出所有所依赖的所有包

yum history
yum执行过的历史记录
yum history info #查看某条历史的详细信息
yum history undo #撤销某条历史
yum history redo #重做某条历史
说了半天,yum源是什么呢,就是执行yum安装命令的时候,yum会从yum源找匹配的包及依赖性关系的包来安装,这个源可以是本地的文件,也可以是链接。这个源在/etc/yum.repos.d/下以.repo结尾的文件,yum源的配置很简单,最重要的就是[base]和[baseurl],我们来配置一个本地yum源

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim Base.repo

[base]
name=Red Hat Enterprise Linux $releasever Repo
baseurl=file:///media
enabled=1
gpgcheck=0

"Base.repo" 12L, 237C                                                   11,0-1        All

要想使用yum就要配好yum源,相比来说yum比rpm简单并且好用,但是并不能只用yum而忘记了rpm。

猜你喜欢

转载自blog.csdn.net/professorman/article/details/81316697
今日推荐