与已安装程序包中的变体冲突



使用spack,我正试图使用以前安装的openmpi@3.1.5安装一个包。在具体化过程中,我得到了以下错误:

错误:试图设置变量"包装器rpath";包装中的";openmpi";,但该包没有这种变体[在具体化过程中发生…]

事实上,如果我做spack info openmpi,就没有wrapper-rpath,而是runpath变体。

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

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

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

首先,变体的名称被更改了,我说得对吗?其次,有没有一种简单的方法可以相应地更新数据库并继续使用已经安装的包?

谢谢!

首先,变量的名称被更改了,我是对的吗?

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

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

很遗憾没有。您可以重新生成openmpi,也可以使用其哈希显式链接到它。请参阅spack find -l openmpi查找哈希。然后像spack install foo ^/hashofopenmpi一样使用它。

最新更新