Linux——RPM软件包管理最新详解

一、什么是软件包,什么是软件管理器?

软件包:Linux开发商实现在特定硬件和操作系统平台上,将需要安装或者升级的软件编译好,将这个软件相关文件打包在软件包中
软件管理器:可以对软件包进行一个集中的管理,帮助用户搜索、安装、管理软件包

1、什么是RPM

RPM全名是【RedHat Package Manager】缩写则为RPM。顾名思义,当初这个软件管理的机制是由Red Hat这家公司发展出来的。RPM是以一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套软件管理机制。

2、RPM的优点

由于RPM是通过预先编译并打包成为RPM文件格式后,再加以安装的一种方式,并且还能够进行数据库的记录。所以RPM有以下的优点:

  • RPM内包含已经编译过的程序与配置文件等数据,用户不需要重新编译;
  • RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装;
  • RPM文件本身提供软件版本信息、依赖属性检查、软件用途说明、软件所含文件等信息,便于了解软件;
  • RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证。

二、rpm软件包的管理

1、rpm软件包

rpm软件包包含编译过的程序与配置文件,用户不需要编译,rpm包在安装之前,会先检查系统的硬软件环境,避免被错误安装。

2、rpm包的获取方式:

1、Centos系统镜像光盘
2、通过各种yum源网站
3、比如安装mysql、nginx软件,我们可以去它的官方网站下载:[http://www.mysql.com]

3、通过镜像安装rpm包

挂载光盘镜像:

挂载:mount 待挂载镜像 挂载点
卸载:umount 挂载点

示例:

# 挂载光盘镜像,并查看镜像中有什么软件包
[root@localhost ~]# mount /dev/sr0 /media
[root@localhost ~]# ls /media/Packages/

例:zsh-5.0.2-25.el7.x86_64.rpm

zsh -5 .0 .2 -25 .e17 .x86_64
软件名 主版本 次版本 修订号 第几次发布 操作系统版本 x86架构的64位

4、安装rpm软件

RPM工具使用分为安装、查询、验证、更新、删除等操作
命令格式rpm [参数] 软件包

常用参数:

参数 说明
-i 是install的意思, 安装软件包(需要输入软件包全名)
-U 升级包
-e 是删除软件包(只需输入包名即可)
-v 显示附加信息,提供更多详细信息
-V 校验,对已经安装的软件进行校验
-h (-hash) 安装时输出####标记和安装百分比

ps:在安装或升级的时候是用的软件包全名,在删除时只使用包名
示例:

[root@localhost ~]# rpm -ivh /media/Packages/zsh-5.0.2-25.el7.x86_64.rpm  #安装zsh包
[root@localhost ~]# rpm -e zsh   #删除包

补充:软件包依赖关系

RPM软件包在进行安装的时侯容易出问题,主要时包与包之间有依赖关系。依赖包的产生,是因为Linux软件采用共享资源库的方式,可以减少软件编程的开发量,类似于Windows下的各种库,高手可自行使用相关命令或方式查看软件包依赖。(无论是安装还是卸载,都有可能会涉及到包的依赖)

Linux——RPM软件包管理最新详解_第1张图片

5、rpm查询功能

用法:rpm -q(query)常与下面参数组合使用 (q是查询,通常是和下面的匹配使用)

选项 说明
-a(all) 查询所有已安装的软件包
-f(file) 系统文件名(查询命令所属哪个软件包),反向查询
-i 显示已经安装的rpm软件包信息,后面直接跟包名
-l(list) 查询软件包中文件安装的位置
-p 查询未安装软件包的相关信息,后面要跟软件的命名
-R 查询软件包的依赖性

Linux——RPM软件包管理最新详解_第2张图片
示例:

1、查看zsh包是否被安装

[root@localhost ~]# rpm -q zsh

2、查询所有已安装包中带shell关键字的包

[root@localhost ~]# rpm -qa |grep "shell"

3、查询我们使用的vim命令是由哪个安装包安装的?

[root@localhost ~]# rpm -qf `which vim`

4、查看当前本地镜像里的php-mysql包的相关信息

[root@localhost ~]# rpm -qpi /media/Packages/php-mysql-5.4.16-42.el7.x86_64.rpm

ps:针对没有安装的RPM包,要加参数: -p

6、查看软件内容是否被修改

命令格式:
rpm -V 包名
rpm -Vf 文件路径

示例:修改zsh二进制文件的内容,然后查看相应信息

[root@localhost ~]# rpm -Vf `which zsh`

出现下面的字符代表某测试的失败:

字符 说明
5 MD5 校验和是否改变,你也看成文件内容是否改变
S 文件长度,大小是否改变
L 符号链接,文件路径是否改变
T 文件修改日期是否改变
D 设备
U 用户,文件的属主
G 用户组
M 模式 (包含许可和文件类型)

三、写在最后

虽然使用源代码进行软件编译可以对其进行定制化,但对于提供Linux发行版的公司或社区来说,软件的管理是个不易得问题,毕竟不是每个人都会进行源代码的编译。如果能够将软件预先在相同的硬件与操作系统上面编译好才发布的话,就能够让相同的Linux发行版具有完全一致的软件版本。RPM与YUM能够很好的实现软件管理!本章我们只说了RPM,下一章我们将讲讲功能更加便捷的YUM。

好了,如果对你有所帮助的话,就是对博主创作的最好支持!如有不足,还请雅正!

你可能感兴趣的:(Linux操作系统,linux,centos,rpm)