Brief Intro to Lmod on CyberGISX

Author: Alexander Michels

This notebook is a very brief explanation of what Lmod is and how to use it on CyberGISX.

What is Lmod?

Lmod is an implementation of Environment Modules, much of what is said here is true for any environment modules system but there are many features which are unique to Lmod. Environment Modules provide a convenient way to dynamically change the users’ environment through modulefiles. This includes easily adding or removing directories to the PATH environment variable.

Basically, Lmod is software that allows us have multiple co-existing versions of software and simply "load" and "unload" them at will!

While Lmod does provide a command line interface (CLI), we recommend you DO NOT use Jupyter ! commands to interact with Lmod because it won't display outputs correctly and often will not accomplish what you are hoping to. Lmod works by manipulating environmental variables like PATH and ! commands spawn subprocesses so your environment will not "remember" what happened in them.

As an example of this "forgetfulness" of ! let's try to set out name as an environmental variable and then in the same cell try to print the variable:

In [1]:
!export MYNAME="Alex"
!echo $MYNAME

Similarly, a module load xxx won't be remembered if run through an ! command.

Luckily, Lmod comes with a very helpful Python package to interact with it! Some of the details can be found in our Knowledge Base and the implementation is very simple if you want to check it out.

Basically after we load it, instead of running !module list we will run module("list"). More details on the module command syntax can be found here. Let's load the Python package and try it out:

In [2]:
import sys, os  # we need this to add the $MODULESHOME path to our Python path
sys.path.insert(0, os.path.join(os.environ['MODULESHOME'], "init"))  # add to the python path
from env_modules_python import module  # import package
In [3]:
output = module("list")  # the output is the return code and stderr output, we catch it to make the notebook cleaner
Currently Loaded Modules:
  1) GCCcore/8.3.0                      43) LAME/3.100-GCCcore-8.3.0
  2) zlib/1.2.11-GCCcore-8.3.0          44) x265/3.2-GCCcore-8.3.0
  3) binutils/2.32-GCCcore-8.3.0        45) util-linux/2.34-GCCcore-8.3.0
  4) GCC/8.3.0                          46) fontconfig/2.13.1-GCCcore-8.3.0
  5) numactl/2.0.12-GCCcore-8.3.0       47) xorg-macros/1.19.2-GCCcore-8.3.0
  6) XZ/5.2.4-GCCcore-8.3.0             48) X11/20190717-GCCcore-8.3.0
  7) libxml2/2.9.9-GCCcore-8.3.0        49) FriBidi/1.0.5-GCCcore-8.3.0
  8) libpciaccess/0.14-GCCcore-8.3.0    50) FFmpeg/4.2.1-GCCcore-8.3.0
  9) hwloc/1.11.12-GCCcore-8.3.0        51) pixman/0.38.4-GCCcore-8.3.0
 10) OpenMPI/3.1.4-GCC-8.3.0            52) libffi/3.2.1-GCCcore-8.3.0
 11) OpenBLAS/0.3.7-GCC-8.3.0           53) GLib/2.62.0-GCCcore-8.3.0
 12) gompi/2019b                        54) cairo/1.16.0-GCCcore-8.3.0
 13) FFTW/3.3.8-gompi-2019b             55) GMP/6.1.2-GCCcore-8.3.0
 14) ScaLAPACK/2.0.2-gompi-2019b        56) nettle/3.5.1-GCCcore-8.3.0
 15) foss/2019b                         57) libdrm/2.4.99-GCCcore-8.3.0
 16) bzip2/1.0.8-GCCcore-8.3.0          58) LLVM/9.0.0-GCCcore-8.3.0
 17) ncurses/6.1-GCCcore-8.3.0          59) libunwind/1.3.1-GCCcore-8.3.0
 18) gettext/0.20.1-GCCcore-8.3.0       60) Mesa/19.1.7-GCCcore-8.3.0
 19) libpng/1.6.37-GCCcore-8.3.0        61) libGLU/9.0.1-GCCcore-8.3.0
 20) libreadline/8.0-GCCcore-8.3.0      62) gzip/1.10-GCCcore-8.3.0
 21) Szip/2.1.1-GCCcore-8.3.0           63) lz4/1.9.2-GCCcore-8.3.0
 22) HDF5/1.10.5-gompi-2019b            64) zstd/1.4.4-GCCcore-8.3.0
 23) cURL/7.66.0-GCCcore-8.3.0          65) GRASS/7.8.3-foss-2019b
 24) netCDF/4.7.1-gompi-2019b           66) MPICH/3.3.2-GCC-8.3.0
 25) expat/2.2.7-GCCcore-8.3.0          67) RHESSysEastCoast/7.2.0-foss-2019b
 26) GEOS/3.8.0-GCC-8.3.0               68) netCDF-Fortran/4.5.2-gompi-2019b
 27) Tcl/8.6.9-GCCcore-8.3.0            69) SUMMA/3.0.3-foss-2019b
 28) SQLite/3.29.0-GCCcore-8.3.0        70) TauDEM/5.3.8-foss-2019b
 29) NASM/2.14.02-GCCcore-8.3.0         71) WRF/4.2.1-foss-2019b-dmpar
 30) libjpeg-turbo/2.0.3-GCCcore-8.3.0  72) WPS/4.2-foss-2019b-dmpar
 31) JasPer/2.0.14-GCCcore-8.3.0        73) find_inlets/20191210-foss-2019b
 32) LibTIFF/4.0.10-GCCcore-8.3.0       74) Boost/1.71.0-gompi-2019b
 33) PCRE/8.43-GCCcore-8.3.0            75) Xvfb/1.20.8-GCCcore-8.3.0
 34) PROJ/6.2.1-GCCcore-8.3.0           76) protozero/1.7.0-GCCcore-8.3.0
 35) libgeotiff/1.5.1-GCCcore-8.3.0     77) sparsehash/2.0.3-GCCcore-8.3.0
 36) libtirpc/1.2.6-GCCcore-8.3.0       78) libosmium/2.15.6-foss-2019b
 37) HDF/4.2.14-GCCcore-8.3.0           79) SoPlex/4.0.1-foss-2019b
 38) GDAL/3.0.2-foss-2019b              80) PostgreSQL/12.4-GCCcore-8.3.0
 39) FreeXL/1.0.5-GCCcore-8.3.0         81) protobuf/3.10.0-GCCcore-8.3.0
 40) libspatialite/4.3.0a-GCC-8.3.0     82) protobuf-c/1.3.3-GCCcore-8.3.0
 41) freetype/2.10.1-GCCcore-8.3.0      83) PostGIS/3.1.2-foss-2019b
 42) x264/20190925-GCCcore-8.3.0        84) cybergisx/0.8.0

 


The list command displays the currently loaded modules. To view the available modules, we can use avail:

In [4]:
output = module("avail")  # the output is the return code and stderr output, we catch it to make the notebook cleaner
-------------- /cvmfs/cybergis.illinois.edu/software/metamodules ---------------
   cjw/2021-09    cjw/2022-03 (D)    cybergisx/0.8.0 (L)    iguide/0.1.0

--------- /cvmfs/cybergis.illinois.edu/software/easybuild/modules/all ----------
   ANTLR/2.7.7-GCCcore-8.3.0-Java-11
   Anaconda3/2020.11
   Anaconda3/2022.05                                       (D)
   Armadillo/11.4.3-foss-2022b
   Autoconf/2.69-GCCcore-8.3.0
   Autoconf/2.71-GCCcore-12.2.0                            (D)
   Automake/1.16.1-GCCcore-8.3.0
   Automake/1.16.5-GCCcore-12.2.0                          (D)
   Autotools/20180311-GCCcore-8.3.0
   Autotools/20220317-GCCcore-12.2.0                       (D)
   BLIS/0.9.0-GCC-12.2.0
   Bison/3.3.2-GCCcore-8.3.0
   Bison/3.3.2
   Bison/3.5.3-GCCcore-9.3.0
   Bison/3.8.2-GCCcore-12.2.0
   Bison/3.8.2                                             (D)
   Boost/1.71.0-gompi-2019b                                (L)
   Boost/1.81.0-GCC-12.2.0                                 (D)
   Brotli/1.0.9-GCCcore-12.2.0
   Brunsli/0.1-GCCcore-12.2.0
   CDO/1.9.10-gompi-2019b
   CFITSIO/4.2.0-GCCcore-12.2.0
   CMake/3.15.3-GCCcore-8.3.0
   CMake/3.24.3-GCCcore-12.2.0                             (D)
   Clang/9.0.1-GCCcore-8.3.0
   DB/18.1.32-GCCcore-8.3.0
   DB/18.1.40-GCCcore-12.2.0                               (D)
   DBus/1.13.12-GCCcore-8.3.0
   Doxygen/1.8.16-GCCcore-8.3.0
   Doxygen/1.9.5-GCCcore-12.2.0                            (D)
   ESMF/8.0.0-foss-2019b
   EasyBuild/4.7.1
   Eigen/3.4.0-GCCcore-12.2.0
   FFTW.MPI/3.3.10-gompi-2022b
   FFTW/3.3.8-gompi-2019b                                  (L)
   FFTW/3.3.10-GCC-12.2.0                                  (D)
   FFmpeg/4.2.1-GCCcore-8.3.0                              (L)
   FlexiBLAS/3.2.1-GCC-12.2.0
   FreeXL/1.0.5-GCCcore-8.3.0                              (L)
   FriBidi/1.0.5-GCCcore-8.3.0                             (L)
   GCC/8.3.0                                               (L)
   GCC/9.3.0
   GCC/12.2.0                                              (D)
   GCCcore/8.3.0                                           (L)
   GCCcore/9.3.0
   GCCcore/12.2.0                                          (D)
   GDAL/3.0.2-foss-2019b                                   (L)
   GDAL/3.6.2-foss-2022b                                   (D)
   GEOS/3.8.0-GCC-8.3.0                                    (L)
   GEOS/3.11.1-GCC-12.2.0                                  (D)
   GLib/2.62.0-GCCcore-8.3.0                               (L)
   GMP/6.1.2-GCCcore-8.3.0                                 (L)
   GMP/6.2.1-GCCcore-12.2.0                                (D)
   GObject-Introspection/1.63.1-GCCcore-8.3.0-Python-3.7.4
   GRASS/7.8.3-foss-2019b                                  (L)
   GSL/2.6-GCC-8.3.0
   GTS/0.7.6-foss-2019b
   Gdk-Pixbuf/2.38.2-GCCcore-8.3.0
   Ghostscript/9.50-GCCcore-8.3.0
   Graphviz/2.42.2-foss-2019b
   HDF/4.2.14-GCCcore-8.3.0                                (L)
   HDF/4.2.15-GCCcore-12.2.0                               (D)
   HDF5/1.10.5-gompi-2019b                                 (L)
   HDF5/1.14.0-gompi-2022b                                 (D)
   HarfBuzz/2.6.4-GCCcore-8.3.0
   Highway/1.0.3-GCCcore-12.2.0
   ICU/64.2-GCCcore-8.3.0
   ICU/72.1-GCCcore-12.2.0                                 (D)
   Imath/3.1.6-GCCcore-12.2.0
   JasPer/2.0.14-GCCcore-8.3.0                             (L)
   JasPer/4.0.0-GCCcore-12.2.0                             (D)
   Java/11.0.2                                             (11)
   LAME/3.100-GCCcore-8.3.0                                (L)
   LERC/4.0.0-GCCcore-12.2.0
   LLVM/9.0.0-GCCcore-8.3.0                                (L)
   LibTIFF/4.0.10-GCCcore-8.3.0                            (L)
   LibTIFF/4.4.0-GCCcore-12.2.0                            (D)
   M4/1.4.18-GCCcore-8.3.0
   M4/1.4.18-GCCcore-9.3.0
   M4/1.4.18
   M4/1.4.19-GCCcore-12.2.0
   M4/1.4.19                                               (D)
   MPICH/3.3.2-GCC-8.3.0                                   (L)
   MPICH/3.3.2-GCC-9.3.0                                   (D)
   Mako/1.1.0-GCCcore-8.3.0
   Mesa/19.1.7-GCCcore-8.3.0                               (L)
   Meson/0.51.2-GCCcore-8.3.0-Python-3.7.4
   Meson/0.59.1-GCCcore-8.3.0-Python-3.7.4
   Meson/0.64.0-GCCcore-12.2.0                             (D)
   NASM/2.14.02-GCCcore-8.3.0                              (L)
   NASM/2.15.05-GCCcore-12.2.0                             (D)
   NCL/6.6.2-foss-2019b
   NCO/4.9.3-foss-2019b
   NSPR/4.21-GCCcore-8.3.0
   NSS/3.45-GCCcore-8.3.0
   Ninja/1.9.0-GCCcore-8.3.0
   Ninja/1.11.1-GCCcore-12.2.0                             (D)
   OpenBLAS/0.3.7-GCC-8.3.0                                (L)
   OpenBLAS/0.3.21-GCC-12.2.0                              (D)
   OpenEXR/3.1.5-GCCcore-12.2.0
   OpenMPI/3.1.4-GCC-8.3.0                                 (L)
   OpenMPI/4.1.4-GCC-12.2.0                                (D)
   OpenSSL/1.1
   PCRE/8.43-GCCcore-8.3.0                                 (L)
   PCRE/8.45-GCCcore-12.2.0                                (D)
   PCRE2/10.33-GCCcore-8.3.0
   PCRE2/10.40-GCCcore-12.2.0                              (D)
   PMIx/4.2.2-GCCcore-12.2.0
   PROJ/6.2.1-GCCcore-8.3.0                                (L)
   PROJ/9.1.1-GCCcore-12.2.0                               (D)
   Pango/1.44.7-GCCcore-8.3.0
   Perl/5.30.0-GCCcore-8.3.0-minimal
   Perl/5.30.0-GCCcore-8.3.0
   Perl/5.36.0-GCCcore-12.2.0                              (D)
   PostGIS/3.1.2-foss-2019b                                (L)
   PostgreSQL/12.4-GCCcore-8.3.0                           (L)
   Python/2.7.16-GCCcore-8.3.0
   Python/3.7.4-GCCcore-8.3.0
   Python/3.10.8-GCCcore-12.2.0-bare
   Python/3.10.8-GCCcore-12.2.0                            (D)
   Qhull/2020.2-GCCcore-12.2.0
   Qt5/5.13.1-GCCcore-8.3.0
   RHESSysEastCoast/7.2.0-foss-2019b                       (L)
   Rust/1.65.0-GCCcore-12.2.0
   SQLite/3.29.0-GCCcore-8.3.0                             (L)
   SQLite/3.39.4-GCCcore-12.2.0                            (D)
   SUMMA/3.0.3-foss-2019b                                  (L)
   SWIG/4.0.1-GCCcore-8.3.0
   ScaLAPACK/2.0.2-gompi-2019b                             (L)
   ScaLAPACK/2.2.0-gompi-2022b-fb                          (D)
   SciPy-bundle/2023.02-gfbf-2022b
   SoPlex/4.0.1-foss-2019b                                 (L)
   Szip/2.1.1-GCCcore-8.3.0                                (L)
   Szip/2.1.1-GCCcore-12.2.0                               (D)
   TauDEM/5.3.8-foss-2019b                                 (L)
   TauDEM/5.3.9-dev-foss-2019b                             (D)
   Tcl/8.6.9-GCCcore-8.3.0                                 (L)
   Tcl/8.6.12-GCCcore-12.2.0                               (D)
   UCC/1.1.0-GCCcore-12.2.0
   UCX/1.13.1-GCCcore-12.2.0
   UDUNITS/2.2.26-GCCcore-8.3.0
   UnZip/6.0-GCCcore-12.2.0
   WPS/4.2-foss-2019b-dmpar                                (L)
   WRF/4.2.1-foss-2019b-dmpar                              (L)
   X11/20190717-GCCcore-8.3.0                              (L)
   XZ/5.2.4-GCCcore-8.3.0                                  (L)
   XZ/5.2.7-GCCcore-12.2.0                                 (D)
   Xerces-C++/3.2.4-GCCcore-12.2.0
   Xvfb/1.20.8-GCCcore-8.3.0                               (L)
   YAXT/0.6.2-gompi-2019b
   Yasm/1.3.0-GCCcore-8.3.0
   arpack-ng/3.8.0-foss-2022b
   binutils/2.32-GCCcore-8.3.0                             (L)
   binutils/2.32
   binutils/2.34-GCCcore-9.3.0
   binutils/2.34
   binutils/2.39-GCCcore-12.2.0
   binutils/2.39                                           (D)
   bzip2/1.0.8-GCCcore-8.3.0                               (L)
   bzip2/1.0.8-GCCcore-12.2.0                              (D)
   cURL/7.66.0-GCCcore-8.3.0                               (L)
   cURL/7.86.0-GCCcore-12.2.0                              (D)
   cairo/1.16.0-GCCcore-8.3.0                              (L)
   double-conversion/3.1.4-GCCcore-8.3.0
   ecCodes/2.17.0-gompi-2019b
   expat/2.2.7-GCCcore-8.3.0                               (L)
   expat/2.4.9-GCCcore-12.2.0                              (D)
   find_inlets/20191210-foss-2019b                         (L)
   flex/2.6.4-GCCcore-8.3.0
   flex/2.6.4-GCCcore-9.3.0
   flex/2.6.4-GCCcore-12.2.0
   flex/2.6.4                                              (D)
   fontconfig/2.13.1-GCCcore-8.3.0                         (L)
   foss/2019b                                              (L)
   foss/2022b                                              (D)
   freetype/2.10.1-GCCcore-8.3.0                           (L)
   g2clib/1.6.0-GCCcore-8.3.0
   g2lib/3.1.0-GCCcore-8.3.0
   gettext/0.19.8.1
   gettext/0.20.1-GCCcore-8.3.0                            (L)
   gettext/0.21.1-GCCcore-12.2.0
   gettext/0.21.1                                          (D)
   gfbf/2022b
   giflib/5.2.1-GCCcore-12.2.0
   git/2.38.1-GCCcore-12.2.0-nodocs
   gompi/2019b                                             (L)
   gompi/2022b                                             (D)
   googletest/1.12.1-GCCcore-12.2.0
   gperf/3.1-GCCcore-8.3.0
   groff/1.22.4-GCCcore-8.3.0
   groff/1.22.4-GCCcore-12.2.0                             (D)
   gzip/1.10-GCCcore-8.3.0                                 (L)
   gzip/1.12-GCCcore-12.2.0                                (D)
   help2man/1.47.8-GCCcore-8.3.0
   help2man/1.47.12-GCCcore-9.3.0
   help2man/1.49.2-GCCcore-12.2.0                          (D)
   hwloc/1.11.12-GCCcore-8.3.0                             (L)
   hwloc/2.8.0-GCCcore-12.2.0                              (D)
   hypothesis/6.68.2-GCCcore-12.2.0
   intltool/0.51.0-GCCcore-8.3.0
   jbigkit/2.1-GCCcore-12.2.0
   json-c/0.16-GCCcore-12.2.0
   libGLU/9.0.1-GCCcore-8.3.0                              (L)
   libarchive/3.6.1-GCCcore-12.2.0
   libdap/3.20.6-GCCcore-8.3.0
   libdeflate/1.15-GCCcore-12.2.0
   libdrm/2.4.99-GCCcore-8.3.0                             (L)
   libevent/2.1.11-GCCcore-8.3.0
   libevent/2.1.12-GCCcore-12.2.0                          (D)
   libfabric/1.16.1-GCCcore-12.2.0
   libffi/3.2.1-GCCcore-8.3.0                              (L)
   libffi/3.4.4-GCCcore-12.2.0                             (D)
   libgd/2.2.5-GCCcore-8.3.0
   libgeotiff/1.5.1-GCCcore-8.3.0                          (L)
   libgeotiff/1.7.1-GCCcore-12.2.0                         (D)
   libiconv/1.16-GCCcore-8.3.0
   libiconv/1.17-GCCcore-12.2.0                            (D)
   libjpeg-turbo/2.0.3-GCCcore-8.3.0                       (L)
   libjpeg-turbo/2.1.4-GCCcore-12.2.0                      (D)
   libosmium/2.15.6-foss-2019b                             (L)
   libpciaccess/0.14-GCCcore-8.3.0                         (L)
   libpciaccess/0.17-GCCcore-12.2.0                        (D)
   libpng/1.6.37-GCCcore-8.3.0                             (L)
   libpng/1.6.38-GCCcore-12.2.0                            (D)
   libreadline/8.0-GCCcore-8.3.0                           (L)
   libreadline/8.2-GCCcore-12.2.0                          (D)
   libspatialite/4.3.0a-GCC-8.3.0                          (L)
   libtirpc/1.2.6-GCCcore-8.3.0                            (L)
   libtirpc/1.3.3-GCCcore-12.2.0                           (D)
   libtool/2.4.6-GCCcore-8.3.0
   libtool/2.4.7-GCCcore-12.2.0                            (D)
   libunwind/1.3.1-GCCcore-8.3.0                           (L)
   libxml2/2.9.9-GCCcore-8.3.0                             (L)
   libxml2/2.10.3-GCCcore-12.2.0                           (D)
   lz4/1.9.2-GCCcore-8.3.0                                 (L)
   lz4/1.9.4-GCCcore-12.2.0                                (D)
   makedepend/1.0.6-GCCcore-8.3.0
   makeinfo/6.7-GCCcore-8.3.0-minimal
   ncurses/6.0
   ncurses/6.1-GCCcore-8.3.0                               (L)
   ncurses/6.3-GCCcore-12.2.0
   ncurses/6.3                                             (D)
   netCDF-C++4/4.3.1-gompi-2019b
   netCDF-Fortran/4.5.2-gompi-2019b                        (L)
   netCDF/4.7.1-gompi-2019b                                (L)
   netCDF/4.9.0-gompi-2022b                                (D)
   nettle/3.5.1-GCCcore-8.3.0                              (L)
   nlohmann_json/3.11.2-GCCcore-12.2.0
   numactl/2.0.12-GCCcore-8.3.0                            (L)
   numactl/2.0.16-GCCcore-12.2.0                           (D)
   pixman/0.38.4-GCCcore-8.3.0                             (L)
   pkg-config/0.29.2-GCCcore-8.3.0
   pkgconf/1.8.0
   pkgconf/1.9.3-GCCcore-12.2.0                            (D)
   protobuf-c/1.3.3-GCCcore-8.3.0                          (L)
   protobuf/3.10.0-GCCcore-8.3.0                           (L)
   protozero/1.7.0-GCCcore-8.3.0                           (L)
   pybind11/2.10.3-GCCcore-12.2.0
   re2c/1.2.1-GCCcore-8.3.0
   snappy/1.1.7-GCCcore-8.3.0
   sparsehash/2.0.3-GCCcore-8.3.0                          (L)
   tcsh/6.22.02-GCCcore-8.3.0
   time/1.9-GCCcore-8.3.0
   util-linux/2.34-GCCcore-8.3.0                           (L)
   x264/20190925-GCCcore-8.3.0                             (L)
   x265/3.2-GCCcore-8.3.0                                  (L)
   xorg-macros/1.19.2-GCCcore-8.3.0                        (L)
   xorg-macros/1.19.3-GCCcore-12.2.0                       (D)
   xproto/7.0.31-GCCcore-8.3.0
   zlib/1.2.11-GCCcore-8.3.0                               (L)
   zlib/1.2.11-GCCcore-9.3.0
   zlib/1.2.11
   zlib/1.2.12-GCCcore-12.2.0
   zlib/1.2.12                                             (D)
   zstd/1.4.4-GCCcore-8.3.0                                (L)
   zstd/1.5.2-GCCcore-12.2.0                               (D)

-------------------- /usr/share/lmod/lmod/modulefiles/Core ---------------------
   lmod    settarg

  Where:
   Aliases:  Aliases exist: foo/1.2.3 (1.2) means that "module load foo/1.2" will load foo/1.2.3
   D:        Default Module
   L:        Module is loaded

If the avail list is too long consider trying:

"module --default avail" or "ml -d av" to just list the default modules.
"module overview" or "ml ov" to display the number of modules for each name.

Use "module spider" to find all possible modules and extensions.
Use "module keyword key1 key2 ..." to search for all possible modules matching
any of the "keys".



Lastly, we are going to try to load a different version of GDAL and demonstrate that it is in fact a new version. First, let's check the version we have:

In [5]:
!gdalinfo --version
GDAL 3.3.1, released 2021/06/28

Currently, we are using the GDAL version 3.3.1 from the Anaconda environment, but suppose we need to use another version available through Lmod like 3.6.2 (see GDAL/3.6.2-foss-2022b in the avail output). To use that, we simply:

In [6]:
output = module("load", "GDAL/3.6.2-foss-2022b")
The following have been reloaded with a version change:
  1) Boost/1.71.0-gompi-2019b => Boost/1.81.0-GCC-12.2.0
  2) FFTW/3.3.8-gompi-2019b => FFTW/3.3.10-GCC-12.2.0
  3) GCC/8.3.0 => GCC/12.2.0
  4) GCCcore/8.3.0 => GCCcore/12.2.0
  5) GDAL/3.0.2-foss-2019b => GDAL/3.6.2-foss-2022b
  6) GEOS/3.8.0-GCC-8.3.0 => GEOS/3.11.1-GCC-12.2.0
  7) GMP/6.1.2-GCCcore-8.3.0 => GMP/6.2.1-GCCcore-12.2.0
  8) HDF/4.2.14-GCCcore-8.3.0 => HDF/4.2.15-GCCcore-12.2.0
  9) HDF5/1.10.5-gompi-2019b => HDF5/1.14.0-gompi-2022b
 10) JasPer/2.0.14-GCCcore-8.3.0 => JasPer/4.0.0-GCCcore-12.2.0
 11) LibTIFF/4.0.10-GCCcore-8.3.0 => LibTIFF/4.4.0-GCCcore-12.2.0
 12) NASM/2.14.02-GCCcore-8.3.0 => NASM/2.15.05-GCCcore-12.2.0
 13) OpenBLAS/0.3.7-GCC-8.3.0 => OpenBLAS/0.3.21-GCC-12.2.0
 14) OpenMPI/3.1.4-GCC-8.3.0 => OpenMPI/4.1.4-GCC-12.2.0
 15) PCRE/8.43-GCCcore-8.3.0 => PCRE/8.45-GCCcore-12.2.0
 16) PROJ/6.2.1-GCCcore-8.3.0 => PROJ/9.1.1-GCCcore-12.2.0
 17) SQLite/3.29.0-GCCcore-8.3.0 => SQLite/3.39.4-GCCcore-12.2.0
 18) ScaLAPACK/2.0.2-gompi-2019b => ScaLAPACK/2.2.0-gompi-2022b-fb
 19) Szip/2.1.1-GCCcore-8.3.0 => Szip/2.1.1-GCCcore-12.2.0
 20) Tcl/8.6.9-GCCcore-8.3.0 => Tcl/8.6.12-GCCcore-12.2.0
 21) XZ/5.2.4-GCCcore-8.3.0 => XZ/5.2.7-GCCcore-12.2.0
 22) binutils/2.32-GCCcore-8.3.0 => binutils/2.39-GCCcore-12.2.0
 23) bzip2/1.0.8-GCCcore-8.3.0 => bzip2/1.0.8-GCCcore-12.2.0
 24) cURL/7.66.0-GCCcore-8.3.0 => cURL/7.86.0-GCCcore-12.2.0
 25) expat/2.2.7-GCCcore-8.3.0 => expat/2.4.9-GCCcore-12.2.0
 26) foss/2019b => foss/2022b
 27) gompi/2019b => gompi/2022b
 28) gzip/1.10-GCCcore-8.3.0 => gzip/1.12-GCCcore-12.2.0
 29) hwloc/1.11.12-GCCcore-8.3.0 => hwloc/2.8.0-GCCcore-12.2.0
 30) libffi/3.2.1-GCCcore-8.3.0 => libffi/3.4.4-GCCcore-12.2.0
 31) libgeotiff/1.5.1-GCCcore-8.3.0 => libgeotiff/1.7.1-GCCcore-12.2.0
 32) libjpeg-turbo/2.0.3-GCCcore-8.3.0 => libjpeg-turbo/2.1.4-GCCcore-12.2.0
 33) libpciaccess/0.14-GCCcore-8.3.0 => libpciaccess/0.17-GCCcore-12.2.0
 34) libpng/1.6.37-GCCcore-8.3.0 => libpng/1.6.38-GCCcore-12.2.0
 35) libreadline/8.0-GCCcore-8.3.0 => libreadline/8.2-GCCcore-12.2.0
 36) libtirpc/1.2.6-GCCcore-8.3.0 => libtirpc/1.3.3-GCCcore-12.2.0
 37) libxml2/2.9.9-GCCcore-8.3.0 => libxml2/2.10.3-GCCcore-12.2.0
 38) lz4/1.9.2-GCCcore-8.3.0 => lz4/1.9.4-GCCcore-12.2.0
 39) ncurses/6.1-GCCcore-8.3.0 => ncurses/6.3-GCCcore-12.2.0
 40) netCDF/4.7.1-gompi-2019b => netCDF/4.9.0-gompi-2022b
 41) numactl/2.0.12-GCCcore-8.3.0 => numactl/2.0.16-GCCcore-12.2.0
 42) zlib/1.2.11-GCCcore-8.3.0 => zlib/1.2.12-GCCcore-12.2.0
 43) zstd/1.4.4-GCCcore-8.3.0 => zstd/1.5.2-GCCcore-12.2.0


The output tells us that many packages have changed versions to accomdate this switch!

To verify, let's check the version again:

In [7]:
!gdalinfo --version
GDAL 3.6.2, released 2023/01/02

Learn More

We have a paper under submission about the architecture of CyberGISX, but in the meantime check out:

In [ ]: