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-toolchainmake的相关工具。

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

火山引擎 最新活动