rpm / yum的使用

学习目标:

一、软件包的封装类型
二、使用RPM软件包管理工具
三、RPM包管理命令——yum (Yellowdog Updater Modified)

学习内容:

一、软件包的封装类型
RPM软件包介绍:它是Redhat Linux可用的一种包封装格式。这种软件包文件的扩展名为“.rpm”,只能在使用RPM(RPM Package Manager,RPM软件包管理器)机制的linux操作系统中安装,如:RHEL、Fedora、Centos等。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。安装RPM软件包需要使用rpm命令或yum命令。

源代码软件包介绍:这种软件包是程序开发完成的原始代码,它的内容多是一种可编译运行的源代码。编译方法稍后会提到。这种软件包文件的后缀为.tar.gz、tar.Z、tar.bz2或.tgz,因多数是使用Unix系统打包工具tar打包的,所以经常被称为“TarBall”。安装源码包需要使用相应的编译工具,如linux中的C/C++语言编译器gcc、gcc-c++。

附带安装程序的软件包介绍:这种软件包的扩展名不一,但仍以TarBall格式居多。软件包中会提供用于安装的可执行程序或脚本文件,如install.sh、setup等,有时会以.bin格式的单个安装文件形式出现,安装时只需运行安装文件就可以根据向导程序的提示完成安装操作。

二、使用RPM软件包管理工具
1、rpm概述
官方站点http://www.rpm.org

RPM机制封装的软件包文件拥有约定俗成的命名格式:
“软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm”
在这里插入图片描述
2.4.6 ,是软件的版本号。版本号的格式通常为“主版本号.次版本号.修正号”。
80,是发布版本号(发布次数),表示这个RPM包是第几次编译生成的。
硬件平台通常为“i386”或“i686”、x86_64、noarch等,表示适用的硬件平台,x86_64表示适用于64位的系统,如果是noarch表示不区分硬件架构
Centos的DVD安装光盘携带的软件包都在Packages目录中。一般情况下(指的是启动到桌面环境),Centos启动后安装光盘会自动挂载到系统的/run/media/root/CentOS 7 x86_64/目录下
在这里插入图片描述

若是启动到字符终端,需要手动挂载光驱设备,先将centos的光盘镜像放入光驱设备中,执行df命令或mount命令查看光驱设备是否挂载

下面开始执行mount命令挂载挂光盘设备
mount命令功能是挂载一个文件系统
mount命令语法格式:mount [选项] device dir
其中device是要挂载的文件系统或设备,dir是挂载点目录
在这里插入图片描述
其中光驱设备名是/dev/sr0或/dev/cdrom(/dev/cdrom是/dev/sr0的链接文件),/media就是挂载点目录

卸除已挂载的文件系统:
umount命令用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
umount [选项] device或挂载点
在这里插入图片描述

二、使用RPM软件包管理工具

主要功能:
查询RPM软件、包文件的相关信息
安装、升级、卸载RPM软件包
维护RPM数据库信息

1)查询已安装的RPM软件信息,格式:rpm -q[子选项] [软件名]
用法:结合不同的子选项 完成不同查询
-qa:查看系统中已安装的所有RPM软件包列表(思考:如何统计当前主机安装的rpm包数量?)
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
-qf: 查询文件或目录属于哪个RPM软件

2)查询未安装的RPM包文件,格式:rpm -qp[子选项] RPM包文件
用法:结合不同的子选项 完成不同查询
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录、文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表

3)安装或升级RPM软件,格式:rpm [选项] RPM包文件…
用法:不同选项适用于不同情况
-i:安装一个新的rpm软件包
-U:升级某个rpm软件,若原本未装,则进行安装
-F:更新某个rpm软件,若原本未装,则放弃安装
-v:显示软件安装过程中的详细信息
-h:在安装或升级软件包的过程中,以“#”好显示安装进度
-e:卸载指定的RPM软件,格式:rpm -e 软件名
–force:强制安装所指定的rpm软件包
–nodeps:安装、升级或卸载软件时,忽略依赖关系

4)维护RPM数据库
RPM数据库(/var/lib/rpm目录下)用于记录在Linux系统中安装、卸载、升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(误删文件、非法关机、病毒破坏等导致),且Linux系统无法自动完成修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包,这时可以使用–rebuilddb或–initdb重建RPM数据库。
可以通过下面简单几个步骤
来恢复:

  1. 删除rpm 锁文件:
    rm -rf /var/lib/rpm/__db.00*
  2. 重建rpm 数据库:
    rpm -vv --rebuilddb
    模拟rpm数据库损坏故障,并验证错误信息。
    RPM作为Linux系统中的软件包管理机制,维护着一份独立的文件数据库,用于存储在系统中已安装的rpm包信息。当数据文件损坏时,将导致不能使用rpm命令或yum命令来查询、安装、升级、删除rpm类软件包。解决该故障一般只需要执行"rpm --rebuilddb"命令,重建数据库即可。

模拟数据库损坏,还原数据库:
在这里插入图片描述
解决软件包依赖关系
RPM包依赖关系:
树形依赖:A-B-C-D
安装时要从后往前安装先从D包开始、然后是C包…最后到A包。
环形依赖:A-B-C-D-A
安装时要可以一条命令直接装完如:rpm -ivh A B C D
总结:安装有依赖关系的多个软件时,被依赖的软件包需要先安装,同时指定多个.rpm包文件进行安装

在这里插入图片描述

vim-common和vim-enhanced软件包的卸载、安装过程,参考步骤如下:
 首先正常卸载vim-common,应提示被vim-enhanced所依赖而失败
 因此正常卸载顺序:先卸载vim-enhanced,然后再卸载vim-common
 然后从光盘中重新安装这两个软件包,首先安装vim-enhanced,应提示需要先安装vim-common
 因此正常安装顺序:先安装vim-common,然后再安装vim-enhanced,演示时也可以在一条rpm命令中同时指定这两个文件

在这里插入图片描述
卸载有依赖关系的多个软件时,依赖其他程序的软件包需要先卸载。同时指定多个软件名进行卸载。
忽略依赖关系,结合“–nodeps”选项,但可能导致软件异常

三、RPM包管理命令——yum (Yellowdog Updater Modified)
作用:
 基于RPM包构建的软件更新机制
 可以自动解决依赖关系
 所有软件包由集中的YUM软件仓库提供

软件仓库的提供方式
 FTP服务:ftp://…
 HTTP服务:http://…
 本地目录:file:///…

yum的配置文件:
基本设置:/etc/yum.conf
仓库设置:/etc/yum.repos.d/*.repo
日志文件:/var/log/yum.log
YUM缓存目录:存放下载的软件包、仓库信息等数据
位于/var/cache/yum/ b a s e a r c h / basearch/ basearch/releasever

1)yum软件仓库
因为Centos7的安装光盘中,已针对软件目录Packages/建好了repodata数据,因此只要简单地将centos7系统光盘挂载到指定目录或将光盘全部内容复制到硬盘即可。

2)为客户机指定YUM仓库位置
客户机指向yum仓库的配置文件位于/etc/yum.repos.d/目录下,文件后缀名师.repo为结尾。

CentOS-*.repo是centos系统安装好后,系统默认提供的指向centos官方yum软件仓库的配置文件
执行vi命令创建指向本地yum软件仓库的配置文件

vi /etc/yum.repos.d/centos.repo
centos.repo配置文件内容如下:
在这里插入图片描述
说明:
配置内容如下:
[Server] //仓库名称
name=centos_repo //仓库描述信息
baseurl=file:///data/centos_repo //URL访问路径,即软件仓库的路径
enabled=1 //启用此软件仓库
gpgcheck=1 //验证软件包的签名
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //GPG公钥文件的位置
如果不做软件包的签名验证,可以将gpgcheck=1改为gpgcheck=0,并将gpgkey删除或注释掉。

Yum命令格式:
yum <package…>
参数说明:
options: 常用的有:
-y : 如果在工作过程中如要使用者响应,这个参数可以直接回答yes
command:
list : 列出在yum server 上面有的RPM套件;若执行yum list installed则表示只列出系统中已安装的软件包,yum list available则表示只列出软件仓库中可用(尚未安装)的软件包,yum list update则表示列出可以升级版本的软件包。
install: 安装某个套件
update : 升级某个套件,如果update后面没有接套件名称,即更新目前主机所有已安装的套件.
info : 列出某个套件的详细信息,相当于rpm -qi package内容
clean : 将已下载到本机的packages或headers移除
remove : 移除已经安装在系统中的某个套件
yum update 全部更新
yum update package 更新指定程序包package
yum check-update 检查可更新的程序
yum info 显示安装包信息
yum list 显示所有已经安装和可以安装的程序包
yum list 显示指定程序包安装情况
yum search 查找软件包,当需要根据某个关键词来查找相关的软件包时,可以执行yum search 关键词,默认仅根据软件包名称和描述信息进行搜索。若执行yum search all 关键词,可以扩大搜索范围,例如,以下将搜索软件仓库并列出与httpd相关的软件包。Yum search all httpd
yum clean headers 清除header
yum clean packages 清除下载的rpm包
yum clean all 清除header与rpm包
yum grouplist ,列出所有组
yum groupinstall 安装某个软件组如:yum groupinstall base

猜你喜欢

转载自blog.csdn.net/m0_53721407/article/details/112852600