| | #!/bin/bash |
| |
|
| | |
| | |
| | |
| |
|
| | |
| |
|
| | source ./scripts/functions.sh |
| |
|
| | set -o pipefail |
| |
|
| | OS_NAME=$(uname -s) |
| | case "${OS_NAME}" in |
| | Linux*) OS_NAME="linux";; |
| | Darwin*) OS_NAME="osx";; |
| | *) echo "Unknown OS: $OS_NAME! This script runs only on Linux or Mac" && exit |
| | esac |
| |
|
| | OS_ARCH=$(uname -m) |
| | case "${OS_ARCH}" in |
| | x86_64*) OS_ARCH="64";; |
| | arm64*) OS_ARCH="arm64";; |
| | aarch64*) OS_ARCH="arm64";; |
| | *) echo "Unknown system architecture: $OS_ARCH! This script runs only on x86_64 or arm64" && exit |
| | esac |
| |
|
| | if ! which curl; then fail "'curl' not found. Please install curl."; fi |
| | if ! which tar; then fail "'tar' not found. Please install tar."; fi |
| | if ! which bzip2; then fail "'bzip2' not found. Please install bzip2."; fi |
| |
|
| | if pwd | grep ' '; then fail "The installation directory's path contains a space character. Conda will fail to install. Please change the directory."; fi |
| |
|
| | |
| | if [ "$OS_NAME" == "linux" ] && [ "$OS_ARCH" == "arm64" ]; then OS_ARCH="aarch64"; fi |
| |
|
| | |
| | export MAMBA_ROOT_PREFIX="$(pwd)/installer_files/mamba" |
| | INSTALL_ENV_DIR="$(pwd)/installer_files/env" |
| | LEGACY_INSTALL_ENV_DIR="$(pwd)/installer" |
| | MICROMAMBA_DOWNLOAD_URL="https://micro.mamba.pm/api/micromamba/${OS_NAME}-${OS_ARCH}/latest" |
| | umamba_exists="F" |
| |
|
| | |
| | if [ -e "$INSTALL_ENV_DIR" ]; then export PATH="$INSTALL_ENV_DIR/bin:$PATH"; fi |
| |
|
| | PACKAGES_TO_INSTALL="" |
| |
|
| | if [ ! -e "$LEGACY_INSTALL_ENV_DIR/etc/profile.d/conda.sh" ] && [ ! -e "$INSTALL_ENV_DIR/etc/profile.d/conda.sh" ]; then PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL conda python=3.8.5"; fi |
| | if ! hash "git" &>/dev/null; then PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL git"; fi |
| |
|
| | if "$MAMBA_ROOT_PREFIX/micromamba" --version &>/dev/null; then umamba_exists="T"; fi |
| |
|
| | |
| | if [ "$PACKAGES_TO_INSTALL" != "" ]; then |
| | |
| | if [ "$umamba_exists" == "F" ]; then |
| | echo "Downloading micromamba from $MICROMAMBA_DOWNLOAD_URL to $MAMBA_ROOT_PREFIX/micromamba" |
| |
|
| | mkdir -p "$MAMBA_ROOT_PREFIX" |
| | curl -L "$MICROMAMBA_DOWNLOAD_URL" | tar -xvj -O bin/micromamba > "$MAMBA_ROOT_PREFIX/micromamba" |
| |
|
| | if [ "$?" != "0" ]; then |
| | echo |
| | echo "EE micromamba download failed" |
| | echo "EE If the lines above contain 'bzip2: Cannot exec', your system doesn't have bzip2 installed" |
| | echo "EE If there are network errors, please check your internet setup" |
| | fail "micromamba download failed" |
| | fi |
| |
|
| | chmod u+x "$MAMBA_ROOT_PREFIX/micromamba" |
| |
|
| | |
| | echo "Micromamba version:" |
| | "$MAMBA_ROOT_PREFIX/micromamba" --version |
| | fi |
| |
|
| | |
| | if [ ! -e "$INSTALL_ENV_DIR" ]; then |
| | "$MAMBA_ROOT_PREFIX/micromamba" create -y --prefix "$INSTALL_ENV_DIR" || fail "unable to create the install environment" |
| | fi |
| | |
| | if [ ! -e "$INSTALL_ENV_DIR" ]; then |
| | fail "There was a problem while installing$PACKAGES_TO_INSTALL using micromamba. Cannot continue." |
| | fi |
| |
|
| | echo "Packages to install:$PACKAGES_TO_INSTALL" |
| |
|
| | "$MAMBA_ROOT_PREFIX/micromamba" install -y --prefix "$INSTALL_ENV_DIR" -c conda-forge $PACKAGES_TO_INSTALL |
| | if [ "$?" != "0" ]; then |
| | fail "Installation of the packages '$PACKAGES_TO_INSTALL' failed." |
| | fi |
| | fi |
| |
|