You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Guix项目中导入并扩展manifest.scm创建新清单?

解决Guix清单文件扩展问题

你之前的写法失败是因为(load "manifest.scm")返回的是manifest对象,而非包名称列表,append只能用于拼接列表,两者类型不匹配,所以无法正常工作。

以下是两种可行的解决方案:

方案1:提取原清单的包规格列表后扩展

修改manifest-alt.scm为以下内容:

(specifications->manifest
  (append
    (manifest-specifications (load "manifest.scm"))
    (list "make")))
  • manifest-specifications 函数会从已有的manifest对象中提取出原始的包规格列表
  • 用append把原列表和新的包名列表合并,再通过specifications->manifest生成新的manifest

方案2:直接向原manifest添加包对象

也可以用manifest-add-packages函数直接添加包,写法如下:

(manifest-add-packages
  (load "manifest.scm")
  (list (specification->package "make")))
  • specification->package 将包名称字符串转换为Guix的package对象
  • manifest-add-packages 负责把新的package对象添加到原manifest中

验证

保存修改后的manifest-alt.scm,运行guix shell -m manifest-alt.scm进入环境后,即可同时使用gcc-toolchain和make的相关工具。

内容的提问来源于stack exchange,提问作者425nesp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 22:12:26