什么是软件包?
系统需要安装软件时,首先需要得到该软件的安装包,再进行安装。openEuler使用RPM(Red Hat Package Manager,开源)作为软件包管理工具,即在openEuler中的软件包的格式为RPM包。
软件包的分类
- 源码包
- 需要自行编译成二进制包,再进行安装,过程复杂,难度高
- 二进制包(RPM包、系统默认包)
- 二进制包是通过源码包编译后产生的,安装相对简单便捷
- 通常是由所使用Linux系统的社区编译、适配后发行的
RPM
什么是RPM?
RPM(RedHat Package Manager),由Red Hat提出,是一种通过数据库记录的方式将所需要的软件安装到Linux系统的一套软件管理机制。
- RPM会建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,且能够自动分析软件包之间的依赖关系
- 源码包通过编译,打包后成为RPM包。打包后的RPM包中存放着默认数据库,记录该软件安装时必须具备的依赖包。
- 当安装RPM包时,RPM会先通过数据库查看系统是否具备该软件的依赖包,若满足条件则继续安装,若不满足则不安装。该过程都会写入数据库,以便后续对RPM包的查询、验证及重装。
RPM包管理工具的用途:
- 安装、删除、升级、管理软件
- 通过RPM能知道软件包包含的文件,以及系统中的某些文件属于哪个软件包
- 可查询系统中的软件包是否安装,及该软件包的其他版本
- 开发者可以把自己的程序打包成RPM包并发布
- 软件包的签名
- 软件包的依赖性检查
RPM包的组成
- 二进制文件:包含已经编译的可执行文件,可以直接在系统上运行。
- 源代码:一些RPM包提供了源代码,用户可以根据需要进行编译和构建。
- 文档:包含软件的使用手册、帮助文档等信息,有助于用户更好的理解和使用软件。
- 配置文件:用于配置软件行为的文件,允许用户根据需要进行定制。
- 依赖关系:声明了软件包所依赖的其他软件包或库,确保系统上的依赖关系得到满足。
RPM包的获取方式
- 在openEuler的官网上下载RPM包,目前只能下载到常用软件包
https://www.openeuler.org/zh/mirror/list/
- 例:
wget https://mirrors.aliyun.com/openeuler/openEuler-20.03-LTS-SP3/everything/x86_64/Packages/vsftpd-3.0.3-32.oe1.x86_64.rpm
- 通过第三方RPM包的网站进行下载
https://rpmfind.net/
- 通过本地光盘镜像(安装介质)安装RPM包
- 需要先把sr0进行挂载,才能进入镜像目录
RPM的优缺点
优点
- 因已经编译且打包,所以安装方便
- 因rpm包信息已经记录在Linux主机的数据库中,方便查询、升级及卸载
缺点
- 系统版本与RPM的版本需要一致(环境需要一致),否则可能会失败,因为社区会为每个版本做对应的RPM适配包
- 需要满足软件的依赖关系
- 卸载时也需要按顺序删除,否则先删除了底层软件包,会造成系统异常
RPM的使用权限
- 默认情况下RPM软件包的安装、删除、更新只有root权限才能使用
- 查询功能任何用户都可以操作
RPM包命名规则(rpmfile)
包名:需要安装的软件的名字,vsftpd等同于qq wechat
rpmfile:vsftpd-3.0.5-2.oe2403.x86_64.rpm
命名格式:
- name-version-arch.rpm
- name-version-arch.src.rpm
说明:
- name:软件包名称
- version:带有主、次和修订次数的软件包版本
- arch:硬件平台。包括:i386、i486、i586、i686、x86_64、ppc、sparc、alpha
- src.rpm:源代码包
例:vsftpd-3.0.5-2.oe2403.x86_64.rpm
- vsftpd:软件包的名称
- 3.0.5:软件的版本号
- 2:修订次数
- oe2403:表示软件包的发行商版本
- x86_64:表示软件包的硬件平台,适合的cpu架构
特殊名称:
- devel:表示这个RPM包是软件的开发包
- noarch:表示这个软件包可以在任何硬件平台上安装