Ubuntu 系统中的软件包管理全解析
1. 软件包管理系统的基础与局限
在软件上传过程中,用户可以对上传进行合理规划,系统也可以为用户完成这一工作,从而避免 API 和 ABI 出现意外的损坏。同时,用户能确保依赖于同一个共享库的所有软件包可以同时升级。此外,用户还能利用软件包的加密签名以及其中文件的哈希列表(通常是 MD5 总和)来验证系统中文件的完整性,防止文件被损坏或被攻击者篡改。
早期的软件包管理系统虽然具备一定的软件管理能力,但也存在明显的局限性。在 20 世纪 90 年代中期的软件打包状态下,大规模的 API 和 ABI 转换需要用户下载大量软件包,并且要求用户进行高度的协调。用户在安装或升级程序时,必须自行弄清楚程序的依赖状态,然后找到、下载并同时安装新的软件组件。对于具有众多依赖项的复杂软件来说,这一过程往往极其繁琐。
为了解决这些问题,大多数系统升级和 ABI/API 更改通常在发行版的不同版本之间通过大型升级脚本来完成。用户需要使用升级脚本一次性安装涉及重大转换的所有软件包,升级脚本会正确安排安装顺序并妥善处理依赖关系。不过,这些问题不仅是有限的软件包管理系统的局限性,在没有软件包管理系统的情况下,经历 API 和 ABI 更改的共享库要么很少被处理(这会带来危险的一致性和安全问题),要么会面临同样的限制,而且没有软件包管理系统提供的警告。
2. 软件包管理系统的高级功能发展
在 Debian 项目创建了名为 dselect 的程序以及备受赞誉的高级软件包工具(APT,最初名为 deity,主要通过 apt - get 程序实现)的推动下,过去五年中软件包管理器在功能和应用上取得了重大进展。大多数这些工具是对之前描
超级会员免费看
订阅专栏 解锁全文
1905

被折叠的 条评论
为什么被折叠?



