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:
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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');}
|
||||
|
||||
Reference in New Issue
Block a user