当前位置:首页 > linux基础 > 正文内容

rpm包管理

6年前 (2019-08-30)linux基础974

RPM基础概述


RPM全称RPM Package Manager缩写,由红帽开发用于软件包的安装,升级卸载与查询


rpm包的命名规则

一个rpm软件包的命名规则。bash-4.2.46-28.el7.x86_64.rpm

image.png

name: 软件包名称

version: 版本号, 主版本, 重大更新. 次版本, 子功能更新. 修订号, 修复bug

release: 发布版本 el6, el7 (hostnamectl)

arch: 系统平台, i386、x86_64(hostnamectl)


rpm包的组成:


安装释放的文件

软件包的元数据(版本,发布号,架构,描述,要求,更改日志等)

脚本:安装前执行的脚本和安装后的脚本


Linux中的软件包类型

分类安装版本
rpm包预先编译打包,安装简单软件版本偏低
源码包手动编译打包,安装繁琐软件版本随意
二进制包解压即可使用, 安装简单不能修改源码


不管是源码包,还是二进制包,安装时都可能会有依赖关系!

系统平台包类型工具自动解决依赖
RedHat/CentosRPMrpmyum
Ubuntu/DebianDPKGdpkgapt

RPM包安装管理

RPM包安装命令参数

-i:                 #安装

-v:                #详细信息

-h:               #安装进度 

--test:         #测试是否能够安装成功

--force:       #强制重新安装

--nodeps:   #忽略依赖关系

#安装软件包, 需要指定软件包绝对路径
[root@qmf ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[root@qmf ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

#在软件包所在目录下可以不指定绝对路径
[root@qmf ~]# cd /mnt/Packages/
[root@qmf Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm

#测试一个软件包是否能在该系统上安装
[root@qmf ~]# rpm -ivh --test /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

#如果软件包存在, 强制再次安装
[root@qmf ~]# rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm

#安装samba服务需要依赖其他组件, 使用--nodeps可重新强制安装
[root@qmf ~]# rpm -ivh --nodeps  /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

RPM包查询命令

rpm命令查询参数


rpm -q      #查看指定软件包是否安装

rpm -qa     #查看系统中已安装的所有RPM软件包列表

rpm -qi     #查看指定软件的详细信息

rpm -ql     #查询指定软件包所安装的目录、文件列表

rpm -qc     #查询指定软件包的配置文件

rpm -qd     #查询指定软件包的帮助文档

rpm -qf     #查询文件或目录属于哪个RPM软件

rpm -q --scripts    #查询rpm包安装前和安装后执行的脚本

#查询vsftpd这个rpm包是否安装
[root@qmf ~]# rpm -q vsftpd

#模糊查找系统已安装的rpm包
[root@qmf ~]# rpm -qa |grep ftp

#查询vsftpd软件包的相关信息
[root@qmf ~]# rpm -qi vsftpd

#查询rpm包所安装的文件
[root@qmf ~]# rpm -ql vsftpd

#查询rpm包相关的配置文件
[root@qmf ~]# rpm -qc vsftpd

#查询配置文件或命令来自于哪个rpm包
[root@qmf ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[root@qmf ~]# rpm -qf /usr/sbin/vsftpd

#查询未安装的软件包会产生哪些文件
[root@qmf ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm

#查询未安装的软件包会产生哪些文件
[root@qmf ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm

#以上查询只能查询已存在 已安装的包,如果没有安装,需要联网查询
[root@db04 ~]# yum provides zip
[root@db04 ~]# yum provides */ifconfig
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base/filelists_db                                                                                                                                                                                                      | 6.4 MB     00:00
epel/filelists_db                                                                                                                                                                                                      | 7.9 MB     00:00
extras/filelists_db                                                                                                                                                                                                    |  24 kB     00:00
updates/filelists_db                                                                                                                                                                                                   | 3.6 MB     00:00
net-tools-1.60-114.el6.x86_64 : Basic networking tools
Repo        : base
Matched from:
Filename    : /sbin/ifconfig

RPM包升级命令

-U 如果老版本不存在,就全新安装,如果存在有新版即升级

-f 老版本必须存在


如果有新版则升级, 软件升级不要跨操作系统主版本号

[root@qmf ~]# rpm -Uvh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

RPM包卸载命令

#先查询, 然后卸载 
[root@qmf ~]# rpm -qa |grep sh
[root@qmf ~]# rpm -e zsh


“rpm包管理” 的相关文章

CentOS7系统服务

1:Linux运行级别1.1.运行级别就是操作系统当前正在运行的功能级别System V init运行级别systemd目标名称作用0runlevel0.target, poweroff.target关机1runlevel1.target, rescue.target单用户模式2runlevel2....

Linux单用户和救援模式

Linux单用户和救援模式

Linux单用户模式Centos7使用单用户模式进行变更系统密码第1步:重启Linux系统主机并出现引导界面时,按下键盘上的e键进入内核编辑界面第2步:在linux16这行的后面添加enforcing=0 init=/bin/bash,然后按下Ctrl + X组合键来运行修改过的内核程序第3步:大约...

Shell介绍(一)变量、传参、数值运算

Shell编程1.什么情况下使用Shell1:安装CentOS系统 自动化安装操作系统(kickstart cobbler) 底层shell2:网络IP地址3:初始化操作系统(ntp时间同步,更改默认YUM源,SSH端口,SSH远程连接禁止DNS解析,禁止root登录,关闭seilnux,防火墙优化...

Shell介绍(二)函数,数组

函数命令的集合 完成特定功能的代码块模块化 复用函数和变量类似 只有先定义才可以调用,如果只定义不调用 则不会执行函数的定义和调用三种方法:[root@web scripts]# cat fun.sh #!/bin/sh test1(){   ...

Shell介绍(四)条件表达式,字符串比对

条件表达式[ ]======test   []常用[ -f file ] 文件是否存在 且为普通文件 重点[ -e file ] 文件存在则为真[ -d file ] 目录存在则为真 重点[ -x file ] 文件有执行权限则为真[ -w file ] 文件可写则为真[...

自动化运维(二)Ansible Playbook

自动化运维(二)Ansible Playbook

1.Playbook剧本1.playbook翻译过来就是“剧本”,那playbook组成如下play: 定义的是主机的角色task: 定义的是具体执行的任务playbook: 由一个或多个play组成,一个play可以包含多个task任务简单理解为: 使用不同的模块完成一件事情2.playbook的...