From 3171ebcfdad5ccd5fbec4b10a5729c6c38a16cec Mon Sep 17 00:00:00 2001 From: Spencer Bliven Date: Thu, 28 Mar 2019 10:25:49 +0100 Subject: [PATCH] Start anaconda build module Not currently tested pending AFS volume creation. Derives from EM/crYOLO. --- Programming/anaconda/build | 42 +++++++++++++++++++ Programming/anaconda/files/config-2018.12.sh | 9 ++++ Programming/anaconda/files/variants | 2 + Programming/anaconda/modulefile | 43 ++++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100755 Programming/anaconda/build create mode 100644 Programming/anaconda/files/config-2018.12.sh create mode 100644 Programming/anaconda/files/variants create mode 100644 Programming/anaconda/modulefile diff --git a/Programming/anaconda/build b/Programming/anaconda/build new file mode 100755 index 0000000..772faa4 --- /dev/null +++ b/Programming/anaconda/build @@ -0,0 +1,42 @@ +#!/usr/bin/env modbuild + +pbuild::add_to_group 'Programming' +pbuild::prep() { + echo "prepping" + 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" +} + +pbuild::configure() { + : +} + +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 + + # Load conda + source "$PREFIX/conda/etc/profile.d/conda.sh" + + # Install anaconda versions + for PY in "${PYTHON_VERSION[@]}"; do + conda install -y anaconda=$V python=$PY + done + + # Deactivate + source deactivate + + # Unload conda; + #unset $(set|sed -rn 's/^(_?conda[a-z_]*).*$/\1/pI'); +} diff --git a/Programming/anaconda/files/config-2018.12.sh b/Programming/anaconda/files/config-2018.12.sh new file mode 100644 index 0000000..f1ba9d1 --- /dev/null +++ b/Programming/anaconda/files/config-2018.12.sh @@ -0,0 +1,9 @@ +# version-specific settings + +# Miniconda version. Defaults to "latest" +# Should match the version distributed with anaconda +CONDA_VERSION=4.5.12 + +# List of python versions to install +PYTHON_VERSIONS=(2.7) + diff --git a/Programming/anaconda/files/variants b/Programming/anaconda/files/variants new file mode 100644 index 0000000..7310e93 --- /dev/null +++ b/Programming/anaconda/files/variants @@ -0,0 +1,2 @@ +anaconda/2018.12 unstable + diff --git a/Programming/anaconda/modulefile b/Programming/anaconda/modulefile new file mode 100644 index 0000000..e9e240f --- /dev/null +++ b/Programming/anaconda/modulefile @@ -0,0 +1,43 @@ +#%Module + +module-whatis "Anaconda software distribution and conda package manager" +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 " + +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. + +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. + +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 } + +# Check for supported shell types +set shelltype [module-info shelltype] +switch -- $shelltype { + "sh" { + } + default { + puts stderr "Shells of type '$shelltype' are NOT supported!" + } +} + +switch [module-info mode] { + "load" { + puts stdout "source \"$PREFIX/conda/etc/profile.d/conda.sh\";\n" + } + "unload" - + "remove" { + # Deactivate + puts stderr "which deactivate && source deactivate || source $PREFIX/conda/bin/deactivate;\n" + + # Unload conda + puts stdout {unset $(set|sed -rn 's/^(_?conda[a-z_]*).*$/\1/pI');} + } +} +