码迷,mamicode.com
首页 > 系统相关 > 详细

Linux系统之RPM包管理

时间:2020-02-15 09:23:22      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:hostname   组件   详细信息   查询   光盘   header   dpkg   manager   目录   

01 RPM包管理

1.1RPM概述

RPM是RedHat Package Manager的缩写,由Redhat公司开发出来的。
RPM是通过数据库记录的方式来将你所需要的软件安装到你的Linux主机上一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装包以及包之间依赖相关性。

1.软件包类型

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

2.常见的软件包

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

系统平台 包类型 工具 自动解决依赖
RedHat/Centos RPM rpm yum
Ubuntu/Debian DPKG dpkg apt

3.RPM获取途径

  1. RedHat光盘或官方网站
  2. RPM查询官网网站
  3. Nginx软件官网网站

4.RPM软件包命名规则

RPM包命名以-将软件分成了若?部分 bash-4.2.46-28.el7.x86_64.rpm
技术图片

name: 软件包名称
version: 版本号, 主版本, 重?更新. 次版本, ?功能更新. 修订号, 修复bug
release: 发布版本 el6, el7(hostnamectl)
arch: 系统平台, i386、x86_64(uname -m,hostnamectl)

rpm包的组成:

安装释放的?件
软件包的元数据(版本,发布号,架构,描述,要求,更改?志等)
脚本:安装前执?的脚本和安装后的脚本

5.查看系统光驱中RPM软件包

如果你的系统中还有系统的安装盘,?先我们让虚拟机链接上我们的系统安装盘,然后我们可以 通过mount /dev/cdrom /mnt命令把光驱挂载到/mnt?录下,那么你会在/mnt/Packages?录下 看到很多 .rpm 的包?件。

[root@localhost ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# ls /mnt/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

[root@localhost ~]# ls /mnt/Packages/ |head

1.2RPM包安装

-i: 安装
-v: 详细信息
-h: 安装进度
--test: 测试是否能够安装成功
--force: 强制重新安装
--nodeps: 忽略依赖关系

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

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

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

//如果软件包存在, 强制再次安装
[root@xmh ~]# rpm -ivh --force /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm   

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

1.3RPM包查询

使?rpm命令查询已安装好的rpm包, 需要了解如下参数:

rpm -q #查看指定软件包是否安装 
rpm -qa #查看系统中已安装的所有RPM软件包列表 
rpm -qi #查看指定软件的详细信息 
rpm -ql #查询指定软件包所安装的?录、?件列表 
rpm -qc #查询指定软件包的配置?件 
rpm -qd #查询指定软件包的帮助?档 
rpm -qf #查询?件或?录属于哪个RPM软件 
rpm -q --scripts #查询rpm包安装前和安装后执?的脚本

//查询未安装的软件包信息 
rpm -qip #查询未安装的rpm包详细信息 
rpm -qlp #查询未安装的软件包会产?哪些?件

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

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

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

//查询rpm包所安装的?件 
[root@xmh ~]# rpm -ql vsftpd

//查询rpm包相关的配置?件 
[root@xmh ~]# rpm -qc vsftpd

//查询配置?件或命令来?于哪个rpm包 (命令不存在系统则无法查询)
[root@xmh ~]# rpm -qf /etc/vsftpd/vsftpd.conf 
[root@xmh ~]# rpm -qf /usr/sbin/vsftpd

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

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

1.4RPM包升级

-U 如果?版本不存在,就全新安装,如果存在有新版即升级
-f ?版本必须存在,才升级

//如果有新版则升级, 软件升级不要跨操作系统主版本号
[root@xmh ~]# rpm -Uvh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

1.5RPM包卸载

卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则 会造成系统崩溃。

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

1.6RPM包校验

软件相关的数据库存放于/var/lib/rpm?录

[root@xmh ~]# rpm -V vsftpd
SM5....T.  c /etc/vsftpd/user_list

S #?件的容量??是否被改变 
M #?件的类型或者?件的属性是否被修改 
5 #MD5这?种指纹加密的内容已经不同 
D #装置的主/次代码已经改变 
L #路径已经被改变 
U #?件的所属主已被修改 
G #?件的所属组已被修改 
T #?件的创建时间已被改变

Linux系统之RPM包管理

标签:hostname   组件   详细信息   查询   光盘   header   dpkg   manager   目录   

原文地址:https://www.cnblogs.com/jasonminghao/p/12310386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!