Distri - 用于测试快速包管理技术的发行版

Michael Stapelberg,i3wm 平铺窗口管理器的作者和前活跃 Debian 开发人员(维护了大约 170 个软件包), 发展 实验分布 分配 和同名的包管理器。 该项目的定位是探索提高包管理系统性能的可能方法,并体现了一些构建发行版的新想法。 包管理器代码是用 Go 编写的 分发者 在 BSD 许可下。

该发行版包格式的一个关键特征是该包以 SquashFS 映像的形式提供,而不是压缩的 tar 存档。 使用 SquashFS,类似于 AppImage 和 Snap 格式,允许您“挂载”包而无需解压它,这可以节省磁盘空间,允许原子更改,并使包的内容可以立即访问。 同时,distri 包与经典的“deb”格式一样,仅包含通过依赖项与其他包链接的单个组件(库不会在包中重复,而是作为依赖项安装)。 换句话说,发行版试图将 Debian 等经典发行版的粒度包结构与以挂载容器的形式交付应用程序的方法结合起来。

distri中的每个包都以只读模式挂载到自己的目录中(例如,带zsh的包为“/ro/zsh-amd64-5.6.2-3”),这对安全性和安全性有积极的影响。防止意外或恶意更改。 为了形成服务目录的层次结构,例如 /usr/bin、/usr/share 和 /usr/lib,使用了一个特殊的 FUSE 模块,它将所有已安装的 SquashFS 映像的内容组合成一个整体(例如 / ro/share 目录提供对所有包中共享子目录的访问。

从根本上来说 发表 来自安装期间调用的处理程序(无钩子或触发器),并且包的不同版本可以彼此共存,因此包的并行安装成为可能。 所提出的结构将包管理器的性能仅限制为下载包的网络吞吐量。 包的实际安装或更新是以原子方式执行的,不需要重复内容。

安装软件包时的冲突被消除,因为每个软件包都与其自己的目录相关联,并且系统允许一个软件包存在不同版本(具有该软件包更新版本的目录内容包含在联合目录中)。 构建包也非常快,不需要在单独的构建环境中安装包(在构建环境中创建 /ro 目录中的必要依赖项的表示)。

支持的 典型的软件包管理命令,例如“distri install”和“distri update”,您可以使用标准的“ls”实用程序来代替信息命令(例如,要查看已安装的软件包,只需在“ /ro”层次结构,并且为了找出该文件包含在哪个包中,请查看该文件的链接指向何处)。

建议用于实验的原型分发套件包括大约 1700包 并准备好 安装图片 带有安装程序,既适合作为主操作系统安装,也适合在 QEMU、Docker、Google Cloud 和 VirtualBox 中运行。 它支持从加密的磁盘分区启动,并支持一组标准应用程序,用于创建基于 i3 窗口管理器的桌面(Google Chrome 作为浏览器提供)。 假如 一个完整的工具包,用于组装发行版、准备和生成包、通过镜像分发包等。

来源: opennet.ru

添加评论