diff options
Diffstat (limited to 'lib/spack/docs/module_file_support.rst')
-rw-r--r-- | lib/spack/docs/module_file_support.rst | 50 |
1 files changed, 13 insertions, 37 deletions
diff --git a/lib/spack/docs/module_file_support.rst b/lib/spack/docs/module_file_support.rst index f6dbdf3f19..7ce2398af2 100644 --- a/lib/spack/docs/module_file_support.rst +++ b/lib/spack/docs/module_file_support.rst @@ -13,8 +13,8 @@ The use of module systems to manage user environment in a controlled way is a common practice at HPC centers that is often embraced also by individual programmers on their development machines. To support this common practice Spack integrates with `Environment Modules -<http://modules.sourceforge.net/>`_ , `LMod -<http://lmod.readthedocs.io/en/latest/>`_ and `Dotkit <https://computing.llnl.gov/?set=jobs&page=dotkit>`_ by +<http://modules.sourceforge.net/>`_ and `LMod +<http://lmod.readthedocs.io/en/latest/>`_ by providing post-install hooks that generate module files and commands to manipulate them. .. note:: @@ -67,7 +67,7 @@ to load the ``cmake`` module: $ module load cmake-3.7.2-gcc-6.3.0-fowuuby Neither of these is particularly pretty, easy to remember, or -easy to type. Luckily, Spack has its own interface for using modules and dotkits. +easy to type. Luckily, Spack has its own interface for using modules. ^^^^^^^^^^^^^ Shell support @@ -108,20 +108,10 @@ that the startup time may be slightly increased because of that. ^^^^^^^^^^^^^^^^^^^^^^^ Once you have shell support enabled you can use the same spec syntax -you're used to: +you're used to and you can use the same shortened names you use +everywhere else in Spack. -========================= ========================== -Modules Dotkit -========================= ========================== -``spack load <spec>`` ``spack use <spec>`` -``spack unload <spec>`` ``spack unuse <spec>`` -========================= ========================== - -And you can use the same shortened names you use everywhere else in -Spack. - -For example, if you are using dotkit, this will add the ``mpich`` -package built with ``gcc`` to your path: +For example this will add the ``mpich`` package built with ``gcc`` to your path: .. code-block:: console @@ -129,17 +119,10 @@ package built with ``gcc`` to your path: # ... wait for install ... - $ spack use mpich %gcc@4.4.7 # dotkit - Prepending: mpich@3.0.4%gcc@4.4.7 (ok) + $ spack load mpich %gcc@4.4.7 # modules $ which mpicc ~/spack/opt/linux-debian7-x86_64/gcc@4.4.7/mpich@3.0.4/bin/mpicc -Or, similarly if you are using modules, you could type: - -.. code-block:: console - - $ spack load mpich %gcc@4.4.7 # modules - These commands will add appropriate directories to your ``PATH``, ``MANPATH``, ``CPATH``, and ``LD_LIBRARY_PATH``. When you no longer want to use a package, you can type unload or unuse similarly: @@ -147,13 +130,12 @@ want to use a package, you can type unload or unuse similarly: .. code-block:: console $ spack unload mpich %gcc@4.4.7 # modules - $ spack unuse mpich %gcc@4.4.7 # dotkit .. note:: - These ``use``, ``unuse``, ``load``, and ``unload`` subcommands are + The ``load`` and ``unload`` subcommands are only available if you have enabled Spack's shell support *and* you - have dotkit or modules installed on your machine. + have environment-modules installed on your machine. ^^^^^^^^^^^^^^^^^^^^^^ Ambiguous module names @@ -292,8 +274,6 @@ that can be generated by Spack: +-----------------------------+--------------------+-------------------------------+----------------------------------------------+----------------------+ | | **Hook name** | **Default root directory** | **Default template file** | **Compatible tools** | +=============================+====================+===============================+==============================================+======================+ - | **Dotkit** | ``dotkit`` | share/spack/dotkit | share/spack/templates/modules/modulefile.dk | DotKit | - +-----------------------------+--------------------+-------------------------------+----------------------------------------------+----------------------+ | **TCL - Non-Hierarchical** | ``tcl`` | share/spack/modules | share/spack/templates/modules/modulefile.tcl | Env. Modules/LMod | +-----------------------------+--------------------+-------------------------------+----------------------------------------------+----------------------+ | **Lua - Hierarchical** | ``lmod`` | share/spack/lmod | share/spack/templates/modules/modulefile.lua | LMod | @@ -377,7 +357,7 @@ are named ``modules.yaml``. The default configuration: .. literalinclude:: _spack_root/etc/spack/defaults/modules.yaml :language: yaml -activates the hooks to generate ``tcl`` and ``dotkit`` module files and inspects +activates the hooks to generate ``tcl`` module files and inspects the installation folder of each package for the presence of a set of subdirectories (``bin``, ``man``, ``share/man``, etc.). If any is found its full path is prepended to the environment variables listed below the folder name. @@ -399,12 +379,9 @@ to the generator being customized: modules: enable: - tcl - - dotkit - lmod tcl: # contains environment modules specific customizations - dotkit: - # contains dotkit specific customizations lmod: # contains lmod specific customizations @@ -590,15 +567,14 @@ do so by using the environment blacklist: .. code-block:: yaml modules: - dotkit: + tcl: all: filter: # Exclude changes to any of these variables environment_blacklist: ['CPATH', 'LIBRARY_PATH'] -The configuration above will generate dotkit module files that will not contain -modifications to either ``CPATH`` or ``LIBRARY_PATH`` and environment module -files that instead will contain these modifications. +The configuration above will generate module files that will not contain +modifications to either ``CPATH`` or ``LIBRARY_PATH``. .. _autoloading-dependencies: |