概念引入 :
# 首先提出一个问题,我们在 Linux 操作系统中是如何 安装软件的 ??
===>>>
在 Linux 系统中,安装软件是有三种方式
===>>>
第一种 : RPM 管理工具
第二种 : YUM 管理工具
第三种 : 源码编译
RPM 基本介绍 :
# 什么是 RPM ?
RPM 是红帽子包管理 (Redhat Package Manager) 的缩写
■ 由Red Hat公司提出的一种软件包管理标准。
它的后缀为 .rpm
# RPM 的作用 ?
■ 对发行的 RPM格式的软件包进行 安装 、査询、 更新、升级、 校验、 卸载
以及 生成.rpm格式的 软件包等
# RPM 作用是 怎样实现 的 ?
■ RPM功能通过 rpm命令 使用不同参数来实现
# RPM 包长什么样子呢 ?
RPM软件包的典型命名格式:
■ 软件名-版本号-发行号.操作系统版本.硬件平台的类型.rpm
比如 zsh-5.0.2-14.el7.x86_64.rpm
RPM 安装 :
首先,先引入一个问题 :
===>>>
就是在安装软件的时候,可能会存在 依赖其它软件 的问题~~!!
例如 : 在安装 ENSP 软件的时候,就存在这种问题,还需要依赖别的软件,
依赖 wireshark 软件 和 virtualbox 软件
那现在,在 Linux 上,我们要安装软件,也可能存在 依赖问题,那我们怎么处理呢 ?
===>>>
首先,针对 RPM 安装工具来讲,它是不能够主动帮我们去解决 安装软件时的依赖关系
的,这是首先需要声明的一点~!!!!
那怎么办 ?
===>>>
就只能硬着头皮往下干~!!!
* 第一种方法就是 : 那就是最原始的问题了 --- 依赖问题
就是你使用 RPM 安装软件的时候,就会出现 提醒你 需要安装其
它软件,需要你先安装其它软件,那就有可能安装失败~!!
* 第二种方法就是 : 不验证软件包依赖
就是我在安装软件的时候,我知道可能存在 依赖问题,但是我忽
略这个依赖~!!
这样的话,那就能保证我安装软件成功,但是又不能保证 使用正
常。 就是 只能让你把这个软件安装下来,但是能不能成功运行
又得不到保证。 那实质上,也就没解决 依赖问题啊~!!
所以,不管 第一种还是第二种方法,实质上并没有解决 安装软件时可能存在的依赖问
题; 这也是我们说的 RPM 安装工具 不能主动解决 依赖问题,也即是 RPM 的局限性
安装选项
参数 | 说明 |
-i, --install | 安装软件包 |
--nodeps | 不验证软件包依赖 |
-v, --verbose | 提供更多的详细信息输出 |
-h, --hash | 软件包安装的时候列出哈希标记 |
- i 选项就是 我们上面讲的 直接安装软件包,那就是能够安装成功,但是可能运行
不正常 ~!! ( 强制忽略 ~!! )
--nodeps 忽略依赖,安装可能成功,使用的时候也可能不正常
- v 在 Linux 学习过程中,该选项经常使用 ~!!
- h 哈希的主要功能是在不可逆的操作,也就是说如果我们对某个软件包进行了哈希
标记,那其他人一旦对软件包进行了篡改,那么 哈希标记就会改变~!!
它是用来检测 软件包是否 被篡改 ~!!
RPM 包 下载
===>>>
# 上示两个网站都可以进行下载
http : // rpmfind.net
===>>>
搜索 zsh
点击下载 ( 上示红色标记 )
# 等这个文件下载下来后,我们把这文件上传到 Linux 上
( 就是从 Windows 上 传到 Linux 上 )
我们使用 sftp 来上传 :
先连接 Linux ( windows 连接 Linux )
===>>>
192.168.153.160 就是 Linux 上主机的 IP
然后显示
·
然后按下确认就行 ,YES ( 这是显示不出来的 )
然后还要输入 Linux -- root 密码 ,输入正确后就连接成功~!!!
显示上图即是连接成功了 ~!!!
连接成功后,我们就把刚才下载好的红色标记包,由 Windows 上传到 Linux
再上传之前,首先,你要清楚刚才下载好的软件包 ( 就是 上面标记的红色文件
包)在 Windows 那里放着,清楚后,先要进入到那个文件所在的路径那里,再在
Windows 的命令终端 上传文件 。
我们使用 Put 命令上传
===>>>
上传成功后,看下上传到 Linux 的那个目录下面了
===>>>
显示,我们上传到 Linux 的 Root 目录下了
那我们就在 Linux 的 Root 目录下 看看有没有该文件
===>>>
恩,就是这个文件 ,说明我们已经把该文件 由 Windows 上传到了 Linux 上了
我们这个 RPM 包 现在就在 Linux 上了,那现在我们来安装 RPM 包
===>>>
这就安装成功了,我们只用了 -i 选项,当然那你也可以加上 -v - h 选项 ;
可以看到的是,我们上面安装的 zsh 这个包,并没有显示出 有依赖关系,这就说明
我们安装 zsh 这个包它就没有依赖关系的要求 。
如果有依赖的话,那就会报错 ~!!!!
我们再使用选项查询下看看我们安装成功了没
===>>>
RPM 查询功能
rpm 查询功能(rpm –q 常与下面参数组合使用):
参数 | 说明 |
-a | 查询所有已安装的软件包 |
-f | 查询文件所属软件包 |
-i | 显示已经安装的rpm软件包信息 |
-l | 和p搭配使用显示未安装软件包的相关文件列表和信息 |
# 查询的时候必须把 - q 选项带上 ~!!!
# 我们使用下上面部分选项 看看效果
===>>>
结果为 :
我们再使用选项查询下看看我们安装成功了没
===>>>
显然,安装成功了~!!
RPM 软件包升级
软件包升级: rpm -Uvh [ rpm包名 ]
# 如果没有安装软件,那你再安装的时候就已经把这个软件升级了~!!
RPM 软件包卸载
rpm卸载: rpm -e [rpm包名] 。
如果有依赖,导致无法卸载,可以使用 --nodeps 参数忽略依赖 强制卸载
RPM 包签名验证
MD5哈希签名验证,可以防止别人修改软件包;
查看签名: rpm -K [软件包名]
导入密钥: rpm --import [密钥文件]