Docs: Getting Started Dependencies#32480
Conversation
2b1603c to
44f3b2e
Compare
Needed for spack#32480
Needed for spack#32480
Needed for spack#32480
21752b3 to
a5fc5c9
Compare
* Add: py-sphinx-design Needed for #32480
659c932 to
893d489
Compare
lib/spack/docs/getting_started.rst
Outdated
| .. code-block:: console | ||
|
|
||
| apt update | ||
| apt install build-essential ca-certificates coreutils curl environment-modules gcc gfortran g++ git gpg lsb-release python3 unzip zip |
There was a problem hiding this comment.
gcc and g++ are part of build-essential, so they don't need to be listed separately. I also always install python3-distutils. I can't remember why, but I recall it being necessary on occasion...
There was a problem hiding this comment.
Spack used to use distutils but no longer does. Some packages depends on distutils, but I believe pip patches those out so distutils doesn't actually get used. @pradyunsg?
There was a problem hiding this comment.
Ah. I know why. spack style will fail without python3-distutils python3-dev.
There was a problem hiding this comment.
Without python3-distutils:
==> Installing py-pip-22.1.2-rltemoksgf7tbslmak4yztuqseppc724
==> No binary for py-pip-22.1.2-rltemoksgf7tbslmak4yztuqseppc724 found: installing from source
==> Using cached archive: /root/spack/var/spack/cache/_source-cache/archive/a3/a3edacb89022ef5258bf61852728bf866632a394da837ca49eb4303635835f17
==> No patches needed for py-pip
==> py-pip: Executing phase: 'install'
==> Error: ProcessError: Command exited with status 1:
'/usr/bin/python3.8' '/tmp/root/spack-stage/spack-stage-py-pip-22.1.2-rltemoksgf7tbslmak4yztuqseppc724/spack-src/pip-22.1.2-py3-none-any.whl/pip' '-vvv' '--no-input' '--no-cache-dir' '--disable-pip-version-check' 'install' '--no-deps' '--ignore-installed' '--no-build-isolation' '--no-warn-script-location' '--no-index' '--prefix=/root/.spack/bootstrap/store/linux-ubuntu20.04-x86_64/gcc-9.4.0/py-pip-22.1.2-rltemoksgf7tbslmak4yztuqseppc724' '/tmp/root/spack-stage/spack-stage-py-pip-22.1.2-rltemoksgf7tbslmak4yztuqseppc724/spack-src/pip-22.1.2-py3-none-any.whl'
See build log for details:
/tmp/root/spack-stage/spack-stage-py-pip-22.1.2-rltemoksgf7tbslmak4yztuqseppc724/spack-build-out.txt
Without python3-dev:
==> Error: cannot bootstrap any of the isort executables from spec "[email protected]: %gcc target=x86_64" due to the following failures:
github-actions-v0.3 raised FileNotFoundError: [Errno 2] No such file or directory: '/root/spack/share/spack/bootstrap/github-actions-v0.3/py-isort.json'
github-actions-v0.2 raised ValueError: source is not trusted
github-actions-v0.1 raised ValueError: source is not trusted
spack-install raised NoHeadersError: Unable to locate python headers in any of these locations:
/usr/include/python3.8
/usr/include/3.8
/usr/Headers
Run `spack --debug ...` for more detailed errors
There was a problem hiding this comment.
On Debian and friends, you should include python3-venv and python3-distutils in the set of packages to be installed — Debian breaks up the Python standard library for some reason that I don’t fully understand and that breaks various packages and pip’s install mechanisms prior to Python 3.10, even though pip uses setuptools’ injection of distutils to ensure that packages with import distutils do the right thing in their build.
IIRC, there’s also a python3-full on newer versions of Debian but I’m not sure about the availability story if that in Debian/Ubuntu (i.e. versions).
There was a problem hiding this comment.
Thank you all!
What's the result on python3-dev - do we need that too or is python3-distutils sufficient?
There was a problem hiding this comment.
Debian/Ubuntu: Should we also add for S3 support the
... python3-pip python3-setuptools
python3 -m pip install boto3as in our docker images? https://github.com/spack/spack/actions/runs/3216648825
There was a problem hiding this comment.
-dev provides headers, which you need for compiling c extensions.
There was a problem hiding this comment.
Yep, I don't think we need that in bootstrapping Spack... When a Python package is built in Spack, we first build a full Python itself again.
893d489 to
c3ebf67
Compare
* Add: py-sphinx-design Needed for spack#32480
c3ebf67 to
81d15de
Compare
alalazo
left a comment
There was a problem hiding this comment.
Can we remove the CSV table at the beginning of the section in favor of this matrix?
|
I thought the CSV table is a platform agnostic dependency overview... Thus I kept it for now. |
Finally document what one needs to install to use Spack on Linux and Mac :-) With <3 for minimal container users and my colleagues with their fancy Macs.
- build-essential: includes gcc, g++ (thx Cory) - Python: add python3-venv, python3-distutils (thx Pradyun)
af9539f to
7f3e4aa
Compare
* Docs: Getting Started Dependencies Finally document what one needs to install to use Spack on Linux and Mac :-) With <3 for minimal container users and my colleagues with their fancy Macs. * Debian Update Packages: GCC, Python - build-essential: includes gcc, g++ (thx Cory) - Python: add python3-venv, python3-distutils (thx Pradyun) * Add RHEL8 Dependencies
Finally document what one needs to install to use Spack on Linux and Mac :-)
With <3 for minimal container users (e.g., issues like #32479) and my colleagues with their fancy Macs.
