diff --git a/docs/howto/local_install.rst b/docs/howto/local_install.rst index 1986c8abec7236992b3f09594a2e190a729f11c6..2a355e73b6e9e41083cf639aaa5629275bc070e3 100644 --- a/docs/howto/local_install.rst +++ b/docs/howto/local_install.rst @@ -1,102 +1,89 @@ -Local installation +Spack installation ================== -***(!)Warning(!)*** - local installation is for expert users only! -There are many possible pitfalls why some parts of the software might not be installed, give compilation errors, etc. -Then it require some spack-kung-foo to debug and recover the installation. Finally you may end up with different -options compiled (like QT support for Geant4) so your installation (or even simulation results!) are different than in production. +Spack is a package management tool designed to support multiple versions +and configurations of software on a wide variety of platforms and environments. +It was designed for large supercomputing centers but can also be used by a regular users. -We release container images exactly to avoid all the problems above. So if you don't want to struggle use them. But if you want... +Spack installation allows to install ATHENA stack natively +on your system (as much as possible). It is easier to work with in terms of IDEs, +OpenGL (Geant4 event display), debugging, etc. The downside of this is that it requires of +compilation of lots of packages, which takes time (hours) and is prone to errors +depending on your system. If setup fails, it require some spack-kung-foo to debug and +recover the installation. Thus: -Spack ------ +THIS TYPE OF INSTALLATION IS CONSIDERED FOR EXPERTS. DO IT ON YOUR OWN RISK. +Installation +------------ -Install spack -............. - -Spack is a package management tool designed to support multiple versions -and configurations of software on a wide variety of platforms and -environments. Spack allows to automatically build target packages with -all needed dependencies. `Sapck -documentation <https://spack.readthedocs.io/en/latest/getting_started.html#installation>`__ - -The installation consist of 3 steps then: 1. Install spack itself 2. -Install `eic-spack repository <https://github.com/eic/eic-spack>`__ (with EIC -packages) 3. Run spack command to install athena packages (like npdet) - -To install spack and EIC repository: +To install Spack and EIC-Spack repository it is recommended to use master branch of spack as +several of issues we submitted are not yet on any tag. .. code:: bash git clone https://github.com/spack/spack.git - - #Source environment - - # For bash/zsh users - $ . spack/share/spack/setup-env.sh - - # For tcsh/csh users - $ source spack/share/spack/setup-env.csh - -You should be able now to use spack: - -.. code:: bash - - spack info root - -(!) By default, all packages will be downloaded, built and installed in this spack directory - -`More documentation on spack installation <https://spack.readthedocs.io/en/latest/getting_started.html#installation>`_ - -Clone and add `eic-spack repository <https://github.com/eic/eic-spack>`_: - -.. code:: bash - - # Adding the EIC Spack Repository - git clone https://github.com/eic/eic-spack.git - - # Add this repository to your Spack configuration + . spack/share/spack/setup-env.sh + git clone https://github.com/eic/eic-spack.git # Add this to your e.g. ~/.bashrc spack repo add eic-spack + -Then you should be able to install ATHENA packages. The full spack environment for the stack: +Create environment file **athena.yaml** with the next content: .. code:: yaml spack: specs: - - assimp +ipo - - acts@8.03.0 +dd4hep +digitization +examples +fatras +identification +json +tgeo - +ipo - - cmake - - clhep cxxstd=17 - - dd4hep +geant4 +hepmc3 +lcio +ipo - - eigen - - gaudi@34.0 +ipo - - geant4 +ipo -qt -opengl -python +vecgeom cxxstd=17 - - genfit +ipo - - hepmc3 +interfaces +python +rootio - - lcio +ipo - - nano - - opencascade +ipo +tbb -vtk - - podio +ipo - - pythia8 +fastjet - - root cxxstd=17 +fftw +fortran +gdml +mlp +pythia8 +root7 +tmva +vc +xrootd +ssl - - singularity +suid - - xrootd cxxstd=17 +python - - eicd - - npdet@master + - acts +dd4hep +digitization +examples +fatras +geant4 +identification +json +tgeo +ipo + - boost@1.76.00 + - cmake + - clhep cxxstd=17 + - dd4hep +geant4 +assimp +hepmc3 +lcio +ipo + - eigen + - gaudi +ipo + - geant4 +ipo +qt +opengl -python +threads +vecgeom cxxstd=17 + - genfit +ipo + - hepmc3 +interfaces +python +rootio + - lcio +ipo + - mesa -llvm swr=none + - nano + - podio +ipo + - pythia8 +fastjet + - root cxxstd=17 +fftw +fortran +gdml +mlp +pythia8 +root7 +tmva +vc +xrootd +ssl + - xrootd cxxstd=17 +python + - igprof + - npdet +geocad + - eicd + - log4cxx + - afterburner +zlib +root + - juggler + - athena-eic +reconstruction + - py-pandas + - py-matplotlib concretization: together config: install_missing_compilers: true - # install_tree: /opt/software - view: false + # Optional: install path and view path + # install_tree: + # root: /opt/software + #view: /opt/local -Copy this or download `athena.yaml <athena.yaml>`_ +Create the environement from the file -.. code:: bash + +.. code::bash spack env create athena athena.yaml spack env activate athena - spack install \ No newline at end of file + spack concretize + spack install --fail-fast -v -j8 + + +References +---------- + +- `Spack main documentation <https://spack.readthedocs.io/en/latest/>`__ +- `Spack environments tutorial <https://spack-tutorial.readthedocs.io/en/latest/tutorial_environments.html>`__ +- `EIC-spack repository <https://github.com/eic/eic-spack>`__ + \ No newline at end of file