Skip to content

Spack should be more aggressive about reusing installed software #311

@alfredo-gimenez

Description

@alfredo-gimenez

When I have [email protected] installed:

(cab689):~$ spack find python
==> 1 installed packages.
-- chaos_5_x86_64_ib / [email protected] --------------------------------
[email protected]

I now try to install py-twisted, explicitly setting the dependency ^[email protected]:

(cab689):~$ spack install -v py-twisted^[email protected]
==> Installing py-twisted
==> Installing python
==> bzip2 is already installed in /g/g22/gimenez1/src/spack/opt/spack/chaos_5_x86_64_ib/gcc-4.9.2/bzip2-1.0.6-wl4v7wdok42cfndertdgyxys2au2ljpz.
==> ncurses is already installed in /g/g22/gimenez1/src/spack/opt/spack/chaos_5_x86_64_ib/gcc-4.9.2/ncurses-6.0-2v7r63atwq6aw3p66bc3mkp7hxeoxgqx.
==> zlib is already installed in /g/g22/gimenez1/src/spack/opt/spack/chaos_5_x86_64_ib/gcc-4.9.2/zlib-1.2.8-mbw4kksfiiloopjcuqbwrktbxe7hq73x.
==> openssl is already installed in /g/g22/gimenez1/src/spack/opt/spack/chaos_5_x86_64_ib/gcc-4.9.2/openssl-1.0.2e-qs3iwf2rhwlck3qsyrlea7i7zbxluntg.
==> sqlite is already installed in /g/g22/gimenez1/src/spack/opt/spack/chaos_5_x86_64_ib/gcc-4.9.2/sqlite-3.8.5-2fhvbyidf72xkkazmqnng4ofp2z2hgxk.
==> readline is already installed in /g/g22/gimenez1/src/spack/opt/spack/chaos_5_x86_64_ib/gcc-4.9.2/readline-6.3-zclrirpahthnvxm2kj2qbz3rup6agcg5.
==> Already downloaded /g/g22/gimenez1/src/spack/var/spack/stage/python-2.7.10-4azwfxr6b6fddsanso7fgk5xivgdnffs/Python-2.7.10.tar.xz.

As you can see, spack tries to reinstall python 2.7.10.

I went ahead with the installation to see the dependency graph of the new python, here it is:

The newly installed python has ^zlib, everything else is the same. py-twisted does not, however, depend on python^zlib, so not sure why spack is making this new dependency requirement. To verify that py-twisted is using the new python^zlib:

TL;DR py-twisted should use the existing python, but it creates a new python^zlib for no apparent reason.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions