跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
RPM包管理器
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{Infobox 软件 | name = RPM包管理器 | logo = <!-- 可添加图片文件名 --> | developer = [[Red Hat]] | released = {{Start date|1997|df=yes}} | latest_release_version = 5.4.18 | latest_release_date = {{Start date|2023|10|15|df=yes}} | programming_language = [[C语言|C]] | operating_system = [[Linux]] | genre = [[软件包管理系统|包管理器]] | license = [[GNU通用公共许可证|GPL]] | website = {{URL|http://rpm.org}} }} '''RPM包管理器'''(RPM Package Manager,原称Red Hat Package Manager)是一种用于[[Linux]]系统的强大软件包管理系统,最初由[[Red Hat]]开发,现已成为多个主流Linux发行版的标准包管理工具,包括[[Red Hat Enterprise Linux|RHEL]]、[[CentOS]]、[[Fedora]]和[[openSUSE]]等。 == 历史与发展 == RPM最初由Erik Troan和Marc Ewing在1997年为Red Hat Linux开发。其设计目标包括: * 提供可验证的软件包格式 * 支持强大的依赖关系处理 * 维护详细的软件包数据库 * 实现简单的软件安装、升级和移除 2000年后,RPM项目转为独立社区维护,形成了现在的rpm.org项目。 == 核心概念 == === RPM包结构 === RPM包采用标准二进制格式,包含: * 软件文件(压缩格式) * 元数据(名称、版本、依赖等) * 安装/卸载脚本 * 签名信息 典型的RPM文件名格式为: <code>名称-版本-发行号.架构.rpm</code> 例如:<code>nginx-1.20.1-1.el7.x86_64.rpm</code> === 数据库系统 === RPM维护系统范围的数据库(通常位于<code>/var/lib/rpm</code>),记录: * 所有已安装软件包 * 文件归属关系 * 依赖关系 * 变更历史 == 基本操作 == === 安装软件包 === <syntaxhighlight lang="bash"> # 安装本地RPM包 rpm -ivh package.rpm # 安装时跳过依赖检查(不推荐) rpm -ivh --nodeps package.rpm </syntaxhighlight> === 查询软件包 === <syntaxhighlight lang="bash"> # 查询已安装的包 rpm -q nginx # 查询包详细信息 rpm -qi nginx # 查询包包含的文件 rpm -ql nginx # 查询文件所属包 rpm -qf /usr/sbin/nginx </syntaxhighlight> === 升级与移除 === <syntaxhighlight lang="bash"> # 升级软件包 rpm -Uvh package.rpm # 移除软件包 rpm -e package_name </syntaxhighlight> == 高级功能 == === 依赖解决 === 虽然RPM本身可以处理简单依赖,但通常配合高级工具如: * [[YUM]](Yellowdog Updater Modified) * [[DNF (软件)|DNF]](Dandified YUM) === 验证软件包 === <syntaxhighlight lang="bash"> # 验证包签名 rpm --checksig package.rpm # 验证已安装包完整性 rpm -V nginx </syntaxhighlight> === 重建数据库 === 当数据库损坏时: <syntaxhighlight lang="bash"> rpm --rebuilddb </syntaxhighlight> == 实际应用案例 == === 企业环境部署 === 在[[CentOS]]服务器上部署Nginx: 1. 下载官方RPM包 2. 验证签名 3. 解决依赖(可能需要配置EPEL仓库) 4. 安装并验证 === 自定义软件包 === 使用<code>rpmbuild</code>工具创建自定义RPM: 1. 准备.spec文件 2. 构建源代码 3. 生成RPM包 == 与其他包管理器的比较 == {| class="wikitable" |+ Linux包管理器比较 ! 特性 !! RPM !! [[DPKG]] !! [[Pacman]] |- | 原生格式 || .rpm || .deb || .pkg.tar.zst |- | 主要发行版 || RHEL/CentOS || Debian/Ubuntu || Arch Linux |- | 高级工具 || YUM/DNF || APT || 无 |} == 未来发展 == 虽然[[DNF (软件)|DNF]]已成为新一代默认包管理器,RPM仍作为基础格式被广泛使用。主要发展方向包括: * 改进依赖解析算法 * 增强安全性(如模块化签名) * 支持新型压缩格式 == 参见 == * [[YUM]] * [[DNF (软件)|DNF]] * [[Red Hat Enterprise Linux]] * [[CentOS]] [[Category:软件包管理系统]] [[Category:Red Hat]] [[Category:Linux软件]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Infobox 软件
(
编辑
)