热门问题
时间线
聊天
视角

Guix

GNU系統的純函數式軟體包管理程式 来自维基百科,自由的百科全书

Guix
Remove ads

GNU Guix/ɡks/[2])是一个跨平台的包管理器,也是一个用于实例化和管理类Unix操作系统的工具。Guix的源代码分叉Nix,部分组件使用GNU Guile进行编写。默认情况下只提供自由的软件包[3] GNU Guix是GNU Guix System的默认包管理器。[4][5][6]

事实速览 当前版本, 源代码库 ...

GNU Guix的开发与GNU Guix System交织在一起。[4]Guix System是一个默认使用GNU HurdGNU Linux-libre内核,GNU Shepherd英语GNU Shepherd init的完整GNU操作系统[5][6]

该项目由志愿者团队在互联网上协调,并由法国非营利组织Guix Europe负责财务管理等。[7]

Remove ads

历史

这个项目由一个GNU Guile黑客Ludovic Courtès于2012年发起。[8]据Guix开发者在2022年十周年纪念博客里的解释,取“Guix”这个名称是为了致敬Nix与Guile[9],因为Guix项目最开始就是把两者混合在一起的。

原理

与传统的包管理器不同,Guix(如Nix一样)采用了纯函数式的部署模型,软件被安装到通过密码散列函数生成的唯一的目录中。每个软件的所有依赖都作为每个密码散列函数的输入,解决了依赖地狱的问题。[10] 这种包管理方法更有可能产生更可靠、可复制和可移植的包。[11][12]

Guix中的软件包使用Guile进行定义。[13]包依赖通过被称为“deriviation”(推导值)的特殊值在Guile中被跟踪,这些值将被Guix进程进行推导;Guix会跟踪这些值,以便在没有其他软件包依赖它们时,让其可以被删除。以更大的存储需求为代价,Guix保证其所有操作是原子操作,因此可被回滚[13];例外是若使用sudo guix gc --verify=contents,repair进行修复,会破坏线性一致性导致无法回滚[14]

GNU Guix System (操作系统)

事实速览 开发者, 编程语言 ...

参考资料

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads