Linux 软件通常以软件包形式交付,并由发行版特有的工具管理。软件包把可安装文件与元数据组合起来,使系统能够跟踪版本、依赖关系、所有权、校验和及生命周期操作。
软件包 · 第 1 课
软件发行
了解上游项目、发行版维护者、软件包和软件包格式如何构成 Linux 软件供应链。
软件包包含什么
二进制软件包可以包含可执行文件、库、文档、默认配置、服务定义和其他资源,还会携带以下元数据:
- 软件包名称和版本
- 目标架构和发行版环境
- 声明的依赖项与冲突
- 文件列表和完整性信息
- 生命周期操作期间使用的可选脚本或触发器
并非每个软件包都是交互式应用程序。软件包也可以提供库、内核组件、语言数据、字体、调试符号,或依赖其他一组软件包的元数据。
哪项信息通常属于软件包元数据,而不是应用程序可执行文件?
上游与发行版的角色
上游项目开发并发布原始源代码。Linux 发行版维护者再把选定版本适配到该发行版。工作可能包括审核许可证、应用集成或安全补丁、定义构建说明、拆分输出软件包、声明依赖项、运行测试和维护更新。
发行版构建基础设施会为受支持的版本和架构生成软件包。仓库工具发布客户端可以验证的元数据和签名。具体职责有所不同:某些上游项目自行发布软件包,而发行版也可能独立从源代码构建。
哪项任务通常属于发行版软件包维护者?
常见原生软件包格式
两种广泛使用的原生格式是:
.deb:Debian 及其衍生发行版使用,包括 Ubuntu 和 Linux Mint.rpm:Fedora、Red Hat Enterprise Linux 和许多相关发行版使用
此外还存在其他原生和跨发行版格式。仅有匹配的文件扩展名并不能保证兼容性;还要考虑软件包架构、发行版版本、库版本、策略、签名和依赖项。
Debian 和 Ubuntu 使用哪种原生软件包格式?
受管理发行的重要性
包管理器会记录已安装状态,并协调跨软件包变更。从受信任的发行版仓库安装,通常能获得一致的依赖解析、签名验证、安全更新和干净卸载。手动复制二进制文件或从源代码安装有时也合适,但不会自动进入这一受管理生命周期。
信任仍取决于仓库配置和签名密钥。加密签名有效只能证明软件包与受信任密钥关联,并不能证明任意第三方软件一定安全或适合当前系统。应尽可能优先使用发行版仓库,并在授予安装权限前评估任何外部来源。
通过受信任软件包仓库安装有什么优势?
可以通过在 Linux 中使用 RPM 管理软件包实验检查软件包元数据和完整性,或通过在 Linux 中从源代码构建软件实验比较源代码流程与受管理软件包。
课程已完成
你已完成 软件发行
现在,你可以识别 Linux 软件发行的主要组成部分。
区分软件包载荷文件与软件包元数据。
区分上游开发与发行版集成。
把
.deb和.rpm与相应的发行版家族联系起来。评估兼容性与信任时,不能只看文件扩展名。