Update anaconda module

- Update build script with best practices for variables, download
  location, etc.
- Format modulefile info
- Activate base environment by default
- More robust unloading script
This commit is contained in:
2019-04-08 16:55:09 +02:00
committed by Spencer Bliven
parent f06815bd3d
commit 8ce24107fc
3 changed files with 32 additions and 20 deletions

View File

@@ -1,12 +1,12 @@
#!/usr/bin/env modbuild
pbuild::add_to_group 'Programming'
pbuild::prep() {
source "${BUILDBLOCK_DIR}/files/config-$V.sh"
mkdir -p "$SRC_DIR"
echo curl -fsSLo "$SRC_DIR/miniconda.sh" "https://repo.anaconda.com/miniconda/Miniconda2-${CONDA_VERSION}-Linux-x86_64.sh"
curl -fsSLo "$SRC_DIR/miniconda.sh" "https://repo.anaconda.com/miniconda/Miniconda2-${CONDA_VERSION}-Linux-x86_64.sh"
source "${BUILDBLOCK_DIR}/files/config-${V_PKG}.sh"
pbuild::pre_prep() {
curl -fsSLo "$PMODULES_DISTFILESDIR/Miniconda2-${CONDA_VERSION}-Linux-x86_64.sh" \
"https://repo.anaconda.com/miniconda/Miniconda2-${CONDA_VERSION}-Linux-x86_64.sh"
}
pbuild::configure() {
@@ -18,10 +18,7 @@ pbuild::compile() {
}
pbuild::install() {
source "${BUILDBLOCK_DIR}/files/config-$V.sh"
mkdir -p $PREFIX
# Install conda
bash "$SRC_DIR/miniconda.sh" -b -p $PREFIX/conda
bash "$PMODULES_DISTFILESDIR/Miniconda2-${CONDA_VERSION}-Linux-x86_64.sh" \
-b -p "$PREFIX/conda"
}

View File

@@ -4,6 +4,3 @@
# Should match the version distributed with anaconda
CONDA_VERSION=4.5.12
# List of python versions to install
PYTHON_VERSIONS=(2.7)

View File

@@ -1,18 +1,30 @@
#%Module
#%Module1.0
module-whatis "Anaconda software distribution and conda package manager"
module-whatis "Conda package manager and Anaconda software distribution"
module-url "https://www.anaconda.com/"
module-license "3-clause BSD License and 3rd party software licenses. https://docs.continuum.io/anaconda/eula/"
module-maintainer "Spencer Bliven <spencer.bliven@psi.ch>"
module-help "
Anaconda is a package manager, an environment manager, a Python/R data science distribution, and a collection of over 1,500+ open source packages. Anaconda is free and easy to install, and it offers free community support.
Anaconda is a package manager, an environment manager, a Python/R data science
distribution, and a collection of over 1,500+ open source packages. Anaconda is
free and easy to install, and it offers free community support.
Conda is an open source package management system and environment management system that runs on Windows, macOS and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.
Conda is an open source package management system and environment management
system that runs on Windows, macOS and Linux. Conda quickly installs, runs and
updates packages and their dependencies. Conda easily creates, saves, loads and
switches between environments on your local computer. It was created for Python
programs, but it can package and distribute software for any language.
Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because conda is also an environment manager. With just a few commands, you can set up a totally separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment.
Conda as a package manager helps you find and install packages. If you need a
package that requires a different version of Python, you do not need to switch
to a different environment manager, because conda is also an environment
manager. With just a few commands, you can set up a totally separate
environment to run that different version of Python, while continuing to run
your usual version of Python in your normal environment.
This package provides the conda command (miniconda), as well as releases of the Anaconda distribution, built against several python versions.
This package provides the conda command (miniconda), as well as releases of the
Anaconda distribution, built against several python versions.
"
set dont-setenv { LD_LIBRARY_PATH }
@@ -29,12 +41,18 @@ switch -- $shelltype {
switch [module-info mode] {
"load" {
#TODO check whether another conda version is present (conflicts)
puts stderr "Using conda from $P/$V\n"
puts stdout "source \"$PREFIX/conda/etc/profile.d/conda.sh\";\n"
# Activate base
puts stdout "conda activate;\n"
}
"unload" -
"remove" {
# Deactivate
puts stderr "which deactivate && source deactivate || source $PREFIX/conda/bin/deactivate;\n"
puts stdout {while [[ "${CONDA_SHLVL:-0}" -gt 0 ]]; do conda deactivate; done;}
# Unload conda
puts stdout {unset $(set|sed -rn 's/^(_?conda[a-z_]*).*$/\1/pI');}