1.RPM基本概述
1.什么是rpm?
RPM全称 RedHat Package Manager 缩写,由红帽开发用于软件包的安装升级卸载与查询
2.rpm包名组成部分?
RPM包命名以-将软件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm
1 2 3
|
bash:软件名 4.2.46-28.el7:4是大版本,2是小版本,46是修订次数,28是发布次数,el7是:enterprise linux 7,使用linux7系统 x86_64:64位架构
|
3.如何获取rpm包
在我们刚开始学习rpm包,建议先使用本地CentOS7的镜像,但实际生产环境中都是通过联网的方式获取rpm包。(先学会,你懂的?)
我们先通过虚拟机加载镜像,然后在linux中执行 mount /dev/cdrom /mnt
,此时你会在/mnt/Packages
目录下看到很多rpm的包文件。那么就可以开始rpm包管理之旅。
4.扩展: Linux中除了rpm安装软件,是否还有安装软件方式?
分类 | 安装 | 版本 |
rpm包 |
预先编译打包,安装简单 |
软件版本偏低 |
源码包 |
手动编译打包,安装繁琐 |
软件版本随意 |
二进制包(绿色包) |
解压即可使用, 安装简单 |
不能修改源码 |
2.RPM使用示例
1.rpm包如何安装
以下列出了rpm命令进行安装软件的常用参数
选项 | 描述 |
-i |
安装rpm |
-v |
显示安装详细信息 |
-h |
显示安装rpm进度 |
–force |
强制重新安装 |
–nodeps |
忽略依赖关系 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
|
2.如何查询已安装好的rpm包
选项 | 描述 |
rpm -q |
查看指定软件包是否安装(重点) |
rpm -qa |
查看系统中已安装的所有RPM软件包列表 |
rpm -qi |
查看指定软件的详细信息 |
rpm -ql |
查询指定软件包所安装的目录、文件列表(重点) |
rpm -qc |
查询指定软件包的配置文件(只有配置文件,etc下的) |
rpm -qf |
查询文件或目录属于哪个RPM软件 |
rpm -qip |
查询未安装的rpm包详细信息 |
rpm -qlp |
查询未安装的软件包会产生哪些文件 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
|
3.RPM包升级
选项 | 描述 |
rpm -U |
如果老版本不存在则全新安装,如果存在有新版即升级 |
4.RPM包卸载
卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
5.RPM包校验(扩展了解)
软件相关的数据库存放于/var/lib/rpm
目录
参数 | 描述 |
S |
文件的容量大小是否被改变 |
M |
文件的类型或者文件的属性是否被修改 |
5 |
MD5 这一种指纹加密的内容已经不同 |
L |
路径已经被改变 |
U |
文件的所属主已被修改 |
G |
文件的所属组已被修改 |
T |
文件的创建时间已被改变 |
1 2 3 4 5
|
[root@www.lqz.com ~]
|
6.RPM包小结
如何查询 util-linux 软件包安装了哪些文件?
如何查询 mkdir 命令是由哪个 RPM 软件包安装的?
安装 .rpm 软件包时,-i、-U、选项有何区别?
3.YUM基本介绍
1.什么是YUM
Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。(PS: YUM是生产最佳实践)
2.YUM源是什么
1要成功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的repository(软件仓库),这个软件仓库我们习惯称为 yum 源。(可以是本地源、网络源)
3.YUM源配置实例
1.阿里yum源
2.Nginx官方源,比如在学习Nginx时需要使用官方的yum源来安装
1 2 3 4 5 6
|
[root@www.lqz.com ~]
|
PS:源超找方式基本一致,zabbix,Docker、Nginx、saltstack、openstack
4.YUM实践案例
1.使用yum查询软件包的方式
2.使用yum安装软件包的方式
1 2 3 4 5 6 7 8
|
[root@www.lqz.com ~]
|
3.使用yum重新安装软件包的方式
4使用yum更新软件包
5.使用yum删除软件包
6.与yum仓库相关指令(扩展了解)
7.与yum缓存相关指令(扩展了解)
8.组包相关指令,(扩展了解)
1 2 3 4 5 6 7 8
|
[root@www.lqz.com ~]
|
9.历史记录指令,(扩展了解)
PS: YUM还有配置文件与签名验证需要我们额外扩展了解的请点击传送门
5.搭建本地仓库
1.有的时候你的linux系统不能联网,当然就不能很便捷的使用联网的yum源了,这时候就需要你自己会利用linux系统光盘制作一个yum源。具体步骤如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
|
2.很多时候不仅仅是一台机器无法上网,而是很多机器都无法上网,但都有联网下载软件的需求,这个时候难道每台机器都挂在光盘吗? 当然可以,但如果软件出现了更新怎么办?
本地光盘提供基础软件包: Base
yum缓存提供常用软件包: nginx, zabbix, docker
1.环境准备
系统 | IP | 角色 |
centos7 |
10.0.0.99 |
yum仓库服务端 |
centos7 |
10.0.0.98 |
yum仓库客户端 |
2.服务端进行yum仓库的搭建准备工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
|
3.客户端配置yum源指向服务端
6.源码包管理实践
1.源码包是什么
源码包指的是开发编写好的程序源代码,但并没有将其编译为一个能正常使用的工具。
2.为什么要学习源码包
1、部分软件官网仅提供源码包,需要自行编译并安装。
2、部分软件在新版本有一些特性还没来得及制作成rpm包时,可以自行编译软件使用其新特性。
3.源码包的优缺点
1.可以自行修改源代码
2.可以定制需要的相关功能
3.新版软件优先更新源码
4.缺点是: 1) 相对yum安装软件会复杂很多。2) 标准化实施困难,自动化就无法落地。
4.源码包如何获取
常见的软件包都可以在官网获取源码包,比如 apache、nginx、mysql等等
5将源码包编译为二进制可执行文件步骤如下,简称安装三步曲
PS: 此方法不是百分百通用于所有源码包,建议拿到源码包解压后,进入到目录找相关的README帮助文档
6.源码编译示例
下面通过编译Nginx来深入了解下源码包编译的过程。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
|
源码编译报错信息处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
checking for C compiler ... not found ./configure: error: C compiler cc is not found
|