linux之rpm基本概述
1.RPM基本概述
- 什么是rpm?
RPM全称 RPM Package Manager 缩写,由红帽开发用于软件包的安装升级卸载与查询.
- 2,rpm包名组成部分?
RPM包命名以-将软件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm
- 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|忽略依赖关系|
#安装软件包, 需要指定软件包绝对路径
[root@carol ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[root@carol ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
#在软件包所在目录下可以不指定绝对路径
[root@carol ~]# cd /mnt/Packages/
[root@carol Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
#如果软件包存在, 强制再次安装
[root@carol ~]# rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm
#安装samba服务需要依赖其他组件, 使用--nodeps可重新强制安装
[root@carol ~]# rpm -ivh --nodeps /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
- 2,如何查询已安装好的rpm包
| 选项 |描述 |
| ---- | ---- | ---- |
| rpm -q | 查看指定软件包是否安装 |
|rpm -qa|查看系统中已安装的所有RPM软件包列表|
|rpm -qi|查看指定软件的详细信息|
|rpm -ql| 查询指定软件包所安装的目录、文件列表|
|rpm -qc|查询指定软件包的配置文件 |
|rpm -qf |查询文件或目录属于哪个RPM软件 |
|rpm -qip|查询未安装的rpm包详细信息|
|rpm -qlp|查询未安装的软件包会产生哪些文件|
#查询vsftpd这个rpm包是否安装
[root@carol ~]# rpm -q vsftpd
#模糊查找系统已安装的rpm包
[root@carol ~]# rpm -qa |grep ftp
#查询vsftpd软件包的相关信息
[root@carol ~]# rpm -qi vsftpd
#查询rpm包所安装的文件
[root@carol ~]# rpm -ql vsftpd
#查询rpm包相关的配置文件
[root@carol ~]# rpm -qc vsftpd
#查询配置文件或命令来自于哪个rpm包
[root@carol ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[root@carol ~]# rpm -qf /usr/sbin/vsftpd
#查询未安装的软件包会产生哪些文件
[root@carol ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
#查询未安装的软件包会产生哪些文件
[root@carol ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
- 3.RPM包升级
#查询vsftpd这个rpm包是否安装
[root@carol ~]# rpm -q vsftpd
#模糊查找系统已安装的rpm包
[root@carol ~]# rpm -qa |grep ftp
#查询vsftpd软件包的相关信息
[root@carol ~]# rpm -qi vsftpd
#查询rpm包所安装的文件
[root@carol ~]# rpm -ql vsftpd
#查询rpm包相关的配置文件
[root@carol ~]# rpm -qc vsftpd
#查询配置文件或命令来自于哪个rpm包
[root@carol ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[root@carol ~]# rpm -qf /usr/sbin/vsftpd
#查询未安装的软件包会产生哪些文件
[root@carol ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
#查询未安装的软件包会产生哪些文件
[root@carol ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
- 4.RPM包升级
选项 | 描述 |
---|---|
rpm -U | 如果老版本不存在则全新安装,如果存在有新版即升级 |
# wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
# wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm
#1.先安装低版本
[root@www.carol.com ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm
#2.尝试安装高版本(会出现错误)
[root@www.carol.com ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm
#3.使用升级的方式,完美解决替换
[root@www.carol.com ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
- 5.RPM包卸载
卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
#先查询, 然后卸载
[root@www.carol.com ~]# rpm -qa |grep sh
[root@www.carol.com ~]# rpm -e zsh
- RPM包校验
软件相关的数据库存放于/var/lib/rpm目录
参数 | 描述 |
---|---|
S | 文件的容量大小是否被改变 |
M | 文件的类型或者文件的属性是否被修改 |
5 | MD5 这一种指纹加密的内容已经不同 |
L | 路径已经被改变 |
U | 文件的所属主已被修改 |
G | 文件的所属组已被修改 |
T | 文件的创建时间已被改变 |
[root@carol.com ~]# rpm -V vsftpd
S.5....T. c /etc/pam.d/vsftpd
.......T. c /etc/vsftpd/ftpusers
S.5....T. c /etc/vsftpd/vsftpd.conf
.M....... /var/ftp/pub