123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- #!/bin/bash
- fail() {
- echo
- echo "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"
- echo
- if [ "$1" != "" ]; then
- echo ERROR: $1
- else
- echo An error occurred.
- fi
- cat <<EOF
- Error downloading TTS Generation WebUI. Sorry about that, please try to:
- 1. Run this installer again.
- 2. If those steps don't help, please copy *all* the error messages in this window, and ask the community at https://discord.gg/V8BKTVRtJ9
- 3. If that doesn't solve the problem, please file an issue at https://github.com/rsxdalv/tts-generation-webui/issues
- Thanks!
- EOF
- read -p "Press any key to continue"
- exit 1
- }
- 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="python=3.10.11 conda-forge::nodejs=22.9.0 conda pip==23.3.2 conda-forge::uv=0.4.17"
- 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
-
- echo "Checking if the Micromamba/Conda environment is already installed"
- if [ ! -e "$INSTALL_ENV_DIR" ]; then
- echo "Creating the Micromamba/Conda environment in $INSTALL_ENV_DIR"
- "$MAMBA_ROOT_PREFIX/micromamba" create -y --prefix "$INSTALL_ENV_DIR" || fail "unable to create the install environment"
- 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
- else
- echo "Micromamba/Conda environment already installed in $INSTALL_ENV_DIR, skipping installation"
- fi
-
- if [ ! -e "$INSTALL_ENV_DIR" ]; then
- fail "There was a problem while installing $PACKAGES_TO_INSTALL using micromamba. Cannot continue."
- fi
- fi
|