When attempting to use a single Spack instance to manage installs for multiple platforms, Spack currently runs into issues recognizing the install platforms for packages that were installed on a different platform than the current platform. While this problem may not affect all multi-platform Spack instances, it seems to affect at least instances that have packages that span Linux platforms with different operating systems and/or system architectures.
To reproduce this issue, download the latest version of Spack and follow these steps:
- While on platform 1, install any small test package (e.g.
zlib).
- While on platform 2, install the same package that was installed on platform 1.
- While on platform 1, run the command
spack uninstall package arch=platform1.
The result of running this on a multi-platform Spack that spans redhat6 and redhat7 packages is the following:
[xjrc@redhat7]$ ./bin/spack uninstall zlib arch=linux-redhat7-x86_64
==> Error: zlib arch=linux-redhat7-x86_64 matches multiple packages:
-- linux-None-x86_64 / gcc@4.7.2 --------------------------------
iwchpoy zlib@1.2.8%gcc
-- linux-redhat7-x86_64 / gcc@4.9.3 -----------------------------
q6kn3wz zlib@1.2.8%gcc
The problem seems to stem from the fact that Spack identifies the non-current platform to be a None platform, which causes ambiguities when referring to packages that exist on both platforms.
When attempting to use a single Spack instance to manage installs for multiple platforms, Spack currently runs into issues recognizing the install platforms for packages that were installed on a different platform than the current platform. While this problem may not affect all multi-platform Spack instances, it seems to affect at least instances that have packages that span Linux platforms with different operating systems and/or system architectures.
To reproduce this issue, download the latest version of Spack and follow these steps:
zlib).spack uninstall package arch=platform1.The result of running this on a multi-platform Spack that spans
redhat6andredhat7packages is the following:The problem seems to stem from the fact that Spack identifies the non-current platform to be a
Noneplatform, which causes ambiguities when referring to packages that exist on both platforms.