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

rpm包管理

5年前 (2019-08-30)linux基础391

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包管理” 的相关文章

NFS文件共享存储

NFS文件共享存储

NFS基本概述NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分...

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介绍(三)if判断,case控制,for循环,while循环,流程控制语句

if判断单分支if [你有房] then     我就嫁给你 fi多分支if [ 你有房 ] then     我就嫁给你 else   &nbs...

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的...