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

WSL2中使用snapcraft设置experimental.snapd-snap=true报错求助

解决WSL2上Snapcraft构建时core.experimental.snapd-snap不支持的错误

问题场景

在WSL2环境长期使用Snapcraft构建Snap包,近期执行snapcraft命令时偶发以下错误:

error: cannot perform the following tasks:

  • Run configure hook of "core" snap (run hook "configure": cannot set "core.experimental.snapd-snap": unsupported system option) An error occurred when trying to execute 'sudo -H env SNAPCRAFT_BUILD_ENVIRONMENT=managed-host HOME=/root SNAPCRAFT_HAS_TTY=True snap set system experimental.snapd-snap=true' with 'multipass': returned exit code 1.

切换至LXD构建环境时会出现相同错误,仅缺少"with 'multipass'"相关提示。

解决方案

1. 关闭不支持的实验性选项

该错误核心是Snapcraft尝试启用experimental.snapd-snap功能,但WSL2环境暂不支持该选项,先手动关闭:

  • 查看当前选项状态:
    snap get system experimental.snapd-snap
    
  • 若返回true,执行命令关闭:
    sudo snap unset system experimental.snapd-snap
    
  • 重启snap服务生效:
    sudo systemctl restart snapd
    

2. 清理构建环境缓存

残留的构建环境可能保留了错误配置,清理后重新初始化:

  • Multipass环境:
    multipass delete --all && multipass purge
    
  • LXD环境:
    lxc delete --force snapcraft-*
    
  • 执行Snapcraft自身清理:
    snapcraft clean
    

3. 调整Snapcraft版本(可选)

如果是新版本Snapcraft引入的兼容性问题,可尝试:

  • 回退到之前稳定版本:
    sudo snap revert snapcraft
    
  • 或升级到最新预览版本(注意可能不稳定):
    sudo snap refresh snapcraft --edge
    

4. 验证WSL2基础配置

确保WSL2环境满足Snapcraft运行要求:

  • 升级WSL2内核到5.10及以上版本(可通过Windows更新或手动安装内核包)
  • 若依赖systemd,需在/etc/wsl.conf中启用:
    [boot]
    systemd=true
    
    保存后执行wsl --shutdown重启WSL生效。

原因说明

experimental.snapd-snap是Snap的实验性功能,用于支持snapd自身以Snap包形式运行,但该功能在WSL2环境下尚未完全兼容。近期Snapcraft版本可能默认尝试启用该选项,导致构建过程中触发不支持的配置错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:52:14