容器中用Spack安装LBANN时遇'paths不允许'错误求助
Spack packages.yaml 配置错误解决方案
问题根源
你遇到的'paths' was unexpected错误,是因为当前使用的Spack版本不支持直接在package条目下使用paths字段,正确的外部包声明需要通过externals数组来配置。
正确的packages.yaml配置示例
将你的配置修改为如下结构,替换路径为你实际的OpenMPI安装目录:
packages: openmpi: externals: - spec: openmpi@3.1.6 prefix: /your/openmpi/install/path # 比如 /usr/local/openmpi-3.1.6 buildable: false
配置说明
externals:用于声明系统中已存在的外部软件包,每个条目需要指定两个关键信息:spec:精确匹配你安装的OpenMPI版本(必须和编译时的版本完全一致,包括补丁号)prefix:OpenMPI的安装根目录(该目录下需包含bin、lib、include等子目录)
buildable: false:强制Spack使用你手动安装的OpenMPI,避免重新编译同名包
验证配置
修改后执行以下命令确认配置生效:
spack find openmpi
如果输出中显示openmpi@3.1.6且标注[external],说明配置正确。
额外注意事项
- 确认OpenMPI安装路径在Singularity容器内可正常访问,不存在挂载权限或路径映射问题
- 检查
${prefix}/bin/mpicc、${prefix}/lib/libmpi.so等关键文件是否存在,确保手动编译的OpenMPI完整可用
内容的提问来源于stack exchange,提问作者boltz
相关产品推荐
相关产品推荐

