linux之rpm安装
- rpm的基本概念
- rpm定义
- RPM包的来源
- 1.镜像文件
- 2.软件的官方网站
- 3.第三方网站
- 4.自制rpm包
- rpm安装原理
- rpm功能
- 查询
- 1.查询已安装的软件
- 2.查询安装软件的路径
- 查询软件的预安装路径(针对未安装的软件)
- 查询软件对应的软件包
- 查询某个软件的配置文件
- 查询程序是哪个软件包安装提供的
- 安装
- 重新安装某个软件
- 卸载
- 升级
- 其他选项
rpm的基本概念
rpm安装需要依赖RPM软件包进行安装。RPM可以理解成windows系统中的安装包
rpm定义
rpm:是redhat package manager的缩写,是RPM软件包的管理工具,可用来对软件的安装、卸载、更新等操作
rpm包的命名格式:
以zziplib-utils-0.13.68-8.el8.x86_64.rpm这个软件包为例:
可将rpm包划分为6个字段。
其中:
第一个字段是zziplib-utils,表示软件的名称
第二个字段是0.13.68,表示版本号
第三个字段是8,表示发布次数
第四个字段是el8,表示开发该软件的是企业版的linux,采用centos8的系统
第五个字段是x86_64,表示该软件采用的架构是x86,64位的系统。该字段也可能是noarch,表示不区分架构
第六个字段是rpm,是rpm包的后缀名
RPM包的来源
1.镜像文件
原理
镜像文件的目录是/dev/cdrom,cdrom是一个光驱文件,是sr0文件的链接文件
[root@localhost ~]
mount: /mnt: WARNING: device write-protected, mounted read-only.
镜像文件属于硬件,硬件是不允许直接访问的,只能通过kernel去访问,因此需要将硬件挂载到系统的某个文件夹下,通过linux内核对该挂载的文件夹进行操作,从而读取镜像文件的内容,挂载的文件夹(也可以称之为挂载点)相当于windows中的C盘,D盘。可以将挂载的过程理解成把一个u盘插入到电脑上的过程,我们不通过电脑是获取不了u盘中的内容的,镜像文件也是一样,必须要进行一个挂载(我个人理解的是一个渠道),才能进行读取
注意:镜像文件的挂载点是只读的文件夹,不能对其进行修改。
读取镜像文件的步骤:
1.将镜像文件加入光驱
2.将镜像文件挂载到指定文件夹下面,从而可以对镜像文件进行读取
读取镜像文件中的rpm软件包
镜像文件中的rpm包位置:
centos7的系统中的rpm安装包在/mnt/packets下。
centos8的系统中的rpm安装包在/mnt/AppStream/Packages下。
#umount -v test1:取消镜像文件的挂载
注意:
不能在光碟的挂载文件去操作,因为是只读文件,不能进行操作,光碟就是镜像文件,且从图中可以看出镜像文件的内存已满
2.软件的官方网站
3.第三方网站
第三方网站有一定风险,不推荐使用
第三方网站:http://rpmfind.net/
4.自制rpm包
优点:安装部署的时候更加方便
通过源码包制作的
RPM包制作过程
RPM制作使用命令
构建RPM包是有命令rpm-build在SPEC文件的指导下完成。spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件。spec文件包含建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个目录下
[root@localhost Packages]
rpm安装原理
rpm功能
查询
rpm命令安装软件包,在/var/lib/rpm文件下,是rpm的一个数据库,会存放已安装的所有软件,因此,查询时会去在该目录下寻找
相当于windows里面的注册表,里面记录了已安装的软件
1.查询已安装的软件
[root@localhost log]
2.查询安装软件的路径
linux中安装软件时会把软件中的内容按功能存放在不同的文件夹,不像windows系统,windows系统是全部放在一个文件夹下
这里以tree命令为例
[root@localhost log]
查询软件的预安装路径(针对未安装的软件)
[root@localhost log]
查询软件对应的软件包
-q选项,当软件存在时会返回软件的安装包,软件不存在时会说未安装该软件
查询某个软件的配置文件
未安装的软件
[root@localhost Packages]
安装的软件
[root@localhost Packages]
查询程序是哪个软件包安装提供的
-qf必须接绝对路径
[root@localhost Packages]
还可用yum去查询
安装
rpm安装的自主性很差,rpm安装软件需要自己去解决依赖关系,很麻烦
但是安装速度快
无
以zsh软件为例
[root@localhost Packages]
-v:可以看到一些详细信息,如准备中、正在升级等字样
-i:install,进行安装的选项
-h:有###的效果,即可以看到进度条
如果想安装多个用空格间隔然后接上要安装的rpm包即可
重新安装某个软件
[root@localhost Packages]
卸载
[root@localhost ~]
升级
[root@localhost ~]
其他选项
–force:强制安装
–nodeps:忽略依赖关系,不检查依赖关系