首页 > 解决方案 > 与已安装软件包中的变体冲突

问题描述

使用 spack,我正在尝试使用以前安装的openmpi@3.1.5. 在具体化过程中出现以下错误:

错误:试图在包“openmpi”中设置变体“wrapper-rpath”,但包没有这样的变体[在具体化过程中发生......]

确实,如果我这样做spack info openmpi,则wrapper-rpath只有一个runpath变体。

因此,我手动更改了spack-db/index.json在 openmpi 变体中放置 runpath 而不是 wrapper-rpath。因此,具体化是成功的,但在安装过程中我遇到了以下问题:

错误:规范 openmpi@3.1.5%gcc@7.3.1 ... +runpath + ... 和 openmpi@3.1.5%gcc@7.3.1 ... + wrapper-rpath + ... 具有相同的 SHA -1 前缀!

所以我的理解是变体名称的改变会产生一个新的SHA1,我应该到处改变这个SHA1。

首先,我对变体的名称已更改是否正确?其次,有没有一种简单的方法来相应地更新数据库并继续使用已经安装的包?

感谢!

标签: openmpispack

解决方案


首先,我对变体的名称已更改是否正确?

是的,变体名称已在https://github.com/spack/spack/pull/17073中更改

其次,有没有一种简单的方法来相应地更新数据库并继续使用已经安装的包?

不幸的是没有。您可以重新openmpi构建,也可以使用其哈希显式链接到它。请参阅spack find -l openmpi以查找哈希。然后像spack install foo ^/hashofopenmpi.


推荐阅读