From b13b253ced6bf501c4b74608bc8426d51c2b2356 Mon Sep 17 00:00:00 2001 From: becker33 Date: Sun, 13 Nov 2016 08:29:32 -0800 Subject: Edited/fixed basic usage tutorial (#2329) * Colify compiler output * Edited/fixed basic usage tutorial * fix console spacing. --- lib/spack/docs/basic_usage_tutorial.rst | 148 +++++++++++++++++--------------- 1 file changed, 79 insertions(+), 69 deletions(-) diff --git a/lib/spack/docs/basic_usage_tutorial.rst b/lib/spack/docs/basic_usage_tutorial.rst index 4ec58daeba..cf8c654c0f 100644 --- a/lib/spack/docs/basic_usage_tutorial.rst +++ b/lib/spack/docs/basic_usage_tutorial.rst @@ -18,6 +18,59 @@ Enterprise Linux. .. _basics-tutorial-install: +---------------- +Installing Spack +---------------- + +Spack works out of the box. Simply clone spack and get going. + +.. code-block:: console + + becker33:~$ git clone https://github.com/LLNL/spack.git + Initialized empty Git repository in /g/g0/becker33/testclone/spack/.git/ + remote: Counting objects: 47125, done. + remote: Compressing objects: 100% (68/68), done. + remote: Total 47125 (delta 16), reused 2 (delta 2), pack-reused 47047 + Receiving objects: 100% (47125/47125), 12.02 MiB | 2.11 MiB/s, done. + Resolving deltas: 100% (23044/23044), done. + becker33:~$ cd spack + +Then add Spack to your path. + +.. code-block:: console + + becker33:spack$ export PATH=~/spack/bin/spack:$PATH + +You're good to go! + +----------------- +What is in Spack? +----------------- + +The ``spack list`` command shows available packages. + +.. code-block:: console + + becker33:spack$ spack list + ==> 1016 packages. + abinit hwloc piranha r-rjava + ack hydra pixman r-rjson + activeharmony hypre pkg-config r-rjsonio + ... + +The ``spack list`` command can also take a query string. Spack +automatically adds wildcards to both ends of the string. For example, +we can view all available python packages. + +.. code-block:: console + + becker33:spack$ spack list py + ==> 129 packages. + py-3to2 py-epydoc py-nestle py-pycparser py-six + py-alabaster py-flake8 py-netcdf py-pydatalog py-sncosmo + py-argcomplete py-funcsigs py-networkx py-pyelftools py-snowballstemmer + ... + ------------------- Installing Packages ------------------- @@ -847,10 +900,11 @@ uses ``mpich``. ^superlu-dist@5.1.1 -The ``spack find -d`` command shows the dependency information as a -tree. While that is often sufficient, many complicated packages cannot be -fully represented as a tree. Again, the ``spack graph`` command shows the -full DAG of the dependency information. +As we discussed before, the ``spack find -d`` command shows the +dependency information as a tree. While that is often sufficient, many +complicated packages, including trilinos, have dependencies that +cannot be fully represented as a tree. Again, the ``spack graph`` +command shows the full DAG of the dependency information. .. code-block:: console @@ -932,16 +986,13 @@ that we didn't really need. $ spack find libelf ==> 6 installed packages. -- linux-redhat6-x86_64 / gcc@4.4.7 ----------------------------- - libelf@0.8.12 - libelf@0.8.12 - libelf@0.8.13 + libelf@0.8.12 libelf@0.8.12 libelf@0.8.13 -- linux-redhat6-x86_64 / intel@15.0.4 -------------------------- libelf@0.8.13 -- linux-redhat6-x86_64 / intel@16.0.3 -------------------------- - libelf@0.8.12 - libelf@0.8.13 + libelf@0.8.12 libelf@0.8.13 We can uninstall packages by spec using the same syntax as install. @@ -1047,11 +1098,11 @@ We will go over some additional uses for the `spack find` command not already covered in the :ref:`basics-tutorial-install` and :ref:`basics-tutorial-uninstall` sections. -Spack find can accept what we call "anonymous specs." These are -expressions in spec syntax that do not contain a package name. For -example, `spack find %intel` will return every package built with the -intel compiler, and ``spack find cppflags=\\"-O3\\"`` will return every -package which was built with ``cppflags=\\"-O3\\"``. +The ``spack find`` command can accept what we call "anonymous specs." +These are expressions in spec syntax that do not contain a package +name. For example, `spack find %intel` will return every package built +with the intel compiler, and ``spack find cppflags=\\"-O3\\"`` will +return every package which was built with ``cppflags=\\"-O3\\"``. .. code-block:: console @@ -1068,9 +1119,9 @@ package which was built with ``cppflags=\\"-O3\\"``. libelf@0.8.12 -The find command can also show which packages were installed +The ``find`` command can also show which packages were installed explicitly (rather than pulled in as a dependency) using the ``-e`` -flag. The ``-E`` flag shows implicit installs only. The find command can +flag. The ``-E`` flag shows implicit installs only. The ``find`` command can also show the path to which a spack package was installed using the ``-p`` command. @@ -1110,59 +1161,18 @@ compilers`` command is an alias for the command ``spack compiler list``. gcc@4.4.7 -- intel -------------------------------------------------------- - intel@16.0.3 - intel@16.0.2 - intel@16.0.1 - intel@16.0.0 - intel@15.0.4 - intel@15.0.3 - intel@15.0.1 - intel@15.0.0 - intel@14.0.4 - intel@14.0.3 - intel@14.0.2 - intel@14.0.1 - intel@14.0.0 - intel@13.1.1 - intel@13.1.0 - intel@13.0.1 - intel@13.0.0 - intel@12.1.5 - intel@12.1.3 - intel@12.1.2 - intel@12.1.0 - intel@12.0.4 - intel@11.1 - intel@10.1 - intel@10.0 - intel@9.1 + intel@16.0.3 intel@15.0.1 intel@14.0.0 intel@12.1.3 intel@10.0 + intel@16.0.2 intel@15.0.0 intel@13.1.1 intel@12.1.2 intel@9.1 + intel@16.0.1 intel@14.0.4 intel@13.1.0 intel@12.1.0 + intel@16.0.0 intel@14.0.3 intel@13.0.1 intel@12.0.4 + intel@15.0.4 intel@14.0.2 intel@13.0.0 intel@11.1 + intel@15.0.3 intel@14.0.1 intel@12.1.5 intel@10.1 -- pgi ---------------------------------------------------------- - pgi@16.5-0 - pgi@16.3-0 - pgi@16.1-0 - pgi@15.10-0 - pgi@15.7-0 - pgi@15.5-0 - pgi@15.1-0 - pgi@14.10-0 - pgi@14.7-0 - pgi@14.3-0 - pgi@13.10-0 - pgi@13.6-0 - pgi@13.2-0 - pgi@13.1-1 - pgi@12.8-0 - pgi@12.1-0 - pgi@11.10-0 - pgi@11.1-0 - pgi@10.9-0 - pgi@10.2-0 - pgi@9.0-4 - pgi@8.0-1 - pgi@7.1-3 - pgi@7.0-6 - + pgi@16.5-0 pgi@15.7-0 pgi@14.7-0 pgi@13.2-0 pgi@11.10-0 pgi@9.0-4 + pgi@16.3-0 pgi@15.5-0 pgi@14.3-0 pgi@13.1-1 pgi@11.1-0 pgi@8.0-1 + pgi@16.1-0 pgi@15.1-0 pgi@13.10-0 pgi@12.8-0 pgi@10.9-0 pgi@7.1-3 + pgi@15.10-0 pgi@14.10-0 pgi@13.6-0 pgi@12.1-0 pgi@10.2-0 pgi@7.0-6 The compilers are maintained in a YAML file that can be hand-edited for special cases. Spack also has tools to add compilers, and @@ -1231,13 +1241,13 @@ return no new compilers. .. code-block:: console - $ spack compiler find /g/g0/becker33/SC16-spack/spack/opt/spack/linux-redhat6-x86_64/gcc-4.4.7/gcc-6.1.0-j5576zbsot2ydljlthjzhsirsesnogvh/bin + $ spack compiler add /g/g0/becker33/SC16-spack/spack/opt/spack/linux-redhat6-x86_64/gcc-4.4.7/gcc-6.1.0-j5576zbsot2ydljlthjzhsirsesnogvh/bin ==> Found no new compilers If we had done a real install, the output would have been as follows: .. code-block:: console - $ spack compiler find /g/g0/becker33/SC16-spack/spack/opt/spack/linux-redhat6-x86_64/gcc-4.4.7/gcc-6.1.0-j5576zbsot2ydljlthjzhsirsesnogvh/bin + $ spack compiler add /g/g0/becker33/SC16-spack/spack/opt/spack/linux-redhat6-x86_64/gcc-4.4.7/gcc-6.1.0-j5576zbsot2ydljlthjzhsirsesnogvh/bin ==> Added 1 new compiler to /g/g0/becker33/.spack/linux/compilers.yaml gcc@6.1.0 -- cgit v1.2.3-60-g2f50