Guix

来自Local Chinese Wikipedia
(重定向自Guix System
跳转到导航 跳转到搜索

页面Module:Infobox/styles.css没有内容。

GNU Guix
File:Guix logo.svg
当前版本Template:Software version
源代码库页面Template:Plainlist/styles.css没有内容。
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
编程语言Guile Scheme, C++Nix核心)
引擎页面Template:Plainlist/styles.css没有内容。
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    许可协议GPLv3+
    网站guix.gnu.org
    页面Module:Infobox/styles.css没有内容。

    GNU Guixpackage.lua第80行Lua错误:module 'Module:IPA/config' not found[1])是一个跨平台的包管理器,也是一个用于实例化和管理类Unix操作系统的工具。其设计灵感与部分源码来自Nix,部分组件使用GNU Guile进行编写。默认情况下只提供自由的软件包[2] GNU Guix是GNU Guix System的默认包管理器。[3][4][5]

    GNU Guix的开发与GNU Guix System交织在一起。[3]Guix System是一个默认使用GNU HurdGNU Linux-libre内核,package.lua第80行Lua错误:module 'Module:Ilh/data' not found init的完整GNU操作系统[4][5]

    历史

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

    原理[编辑]

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

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

    GNU Guix System (操作系统)[编辑]

    页面Module:Infobox/styles.css没有内容。

    GNU Guix System
    File:Guix logo.svg
    运行着Xfce桌面环境, GNU IceCat浏览器和GNU Emacs的Guix System
    运行着Xfce桌面环境, GNU IceCat浏览器和GNU Emacs的Guix System
    开发者GNU计划
    编程语言GNU GuileC++Shell
    操作系统家族类Unix
    源码模式开放源代码
    当前版本Template:Software version
    市场取向桌面计算机笔记本电脑服务器嵌入式开发板
    内核类别宏内核(使用GNU Linux-libre时)或微内核(使用GNU Hurd时)
    用户空间默认为GNU
    许可证页面Template:Plainlist/styles.css没有内容。
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      官方网站{{URL|example.com|可选的显示文本}}Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      仓库页面Template:Plainlist/styles.css没有内容。
      • {{URL|example.com|可选的显示文本}}
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)

      参考资料[编辑]

      1. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
      2. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
      3. 3.0 3.1 package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
      4. 4.0 4.1 package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
      5. 5.0 5.1 package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
      6. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
      7. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
      8. Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions,"页面存档备份,存于互联网档案馆linux.com, December 22, 2008
      9. Dolstra, E., de Jonge, M. and Visser, E. "Nix: A Safe and Policy-Free System for Software Deployment."页面存档备份,存于互联网档案馆) In Damon, L. (Ed.), 18th Large Installation System Administration Conference (LISA '04)页面存档备份,存于互联网档案馆, pages 79–92, Atlanta, Georgia, USA. USENIX, November 2004.
      10. Dolstra, E. The Purely Functional Software Deployment Model.页面存档备份,存于互联网档案馆) PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
      11. 11.0 11.1 package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
      12. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found

      package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found