使用rpm命令-安装-查看-卸载-rpm软件包
安装
RPM 工具使用分为安装、查询、验证、更新、删除等操作
命令格式:rpm [参数] 软件包
参数:
-i 是 install 的意思。安装软件包
-v 显示附加信息,提供更多详细信息
-V 校验,对已经安装的软件进行校验
-h --hash 安装时输出####标记
备注:当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下;
例1:本地安装
[[email protected] ~]# rpm -ivh /media/BaseOS/Packages/lrzsz-0.12.20-43.el8.x86_64.rpm
例2:从网上下载安装epel扩展源
[[email protected] yum.repos.d]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
查询
用法:rpm -q(query) 常与下面参数组合使用
-a(all) 查询所有已安装的软件包
-f(file)系统文件名(查询系统文件所属哪个软件包),反向查询
-i 显示已经安装的 rpm 软件包信息,后面直接跟包名
-l(list) 查询软件包中文件安装的位置
-p 查询未安装软件包的相关信息,后面要跟软件的命名
-R 查询软件包的依赖性
例1:
[[email protected] yum.repos.d]# rpm -q lrzsz
lrzsz-0.12.20-43.el8.x86_64
[[email protected] yum.repos.d]# rpm -qa #查收所有已经安装的包
[[email protected] yum.repos.d]# rpm -qa |grep lrzsz #查询指定安装包
[[email protected] yum.repos.d]# which find #查看find命令路径
/usr/bin/find
[[email protected] yum.repos.d]# rpm -qf /usr/bin/find #查询文件属于那个包
findutils-4.6.0-20.el8.x86_64
[[email protected] yum.repos.d]# rpm -qf `which find` #查询文件属于那个包
findutils-4.6.0-20.el8.x86_64
[[email protected] yum.repos.d]# rpm -qi lrzsz #查询已经安装的 rpm 包的详细信息
[[email protected] yum.repos.d]# rpm -qpl /media/BaseOS/Packages/lrzsz-0.12.20-43.el8.x86_64.rpm #查询了lrzsz安装后生成那些文件
查看软件包内容是否被修改
rpm -V 包名
rpm -Vf 文件路径
例1:检查具体包文件是否被修改
[[email protected] ~]# rpm -Vf `which find`
S.5....T. /usr/bin/find
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
例2:检查系统中所有文件是否有被黑客修改过;
[[email protected] ~]# rpm -Va >rpm_check.tx
注: 检验时参考了 /var/lib/rpm 目录下的 rpm 数据库信息
rpm包卸载与升级
卸载:rpm -e 包名
升级:rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
注:1.--nodeps 忽略依赖,建议在卸载时丌要用 rpm 去卸载有依赖关系的包,应该用 yum;2.因为升级时会有一些依赖包要解决。 所以一般我们使用 yum update 包来升
Yum的使用
[[email protected] ~]# yum install -y httpd #安装软件包
[[email protected] ~]# yum -y update #升级整个系统
[[email protected] ~]# yum -y upgrade #不改变软件设置和系统设置,系统版本升级,内核不变
[[email protected] ~]# yum info httpd #查询httpd包的作用
[[email protected] ~]# yum provides /usr/bin/find #查询find是那个软件包安装的
[[email protected] ~]# yum -y remove httpd #卸载软件包
配置yum源
Yum是一个前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
配置yum源步骤:
- 挂载镜像
- 配置本地yum源
centos8 本地 YUM 源配置:
在 centos8 当中,本地光盘中的安装包被分别放在了两个路径下。假设挂载路径为/mnt,那么两个Package 路径分别为:/mnt/AppStream/Packages 和/mnt/BaseOS/Packages。
因为 IOS 镜像内的设置,所以导致了在编辑本地 yum 源的时候需要分别写两个路径在配置文件中。同时网络 yum 源也被分别写到了两个配置文件内。所以就需要把两个网络 yum 源配置文件改
BaseOS:类似于原来的软件仓库,主要提供了 OS 系统的基础组建,提供的是 RPM 形式的包,因为都是 RPM 包形式所以它支持与之前版本兼容(support terms similar)。
AppStream:这是一个特殊类型的仓库,它提供的是额外的用户空间的应用,运行时语言等,它提供了两种形式的内容:第一种是 RPM 形式的独立的软件包,第二种是 Modules 形式的包集合,它是一系列用于同时构建,测试,发布的包的集合,即将相关的包组合在一起。