mirror of
https://github.com/mindverse/Second-Me.git
synced 2026-07-18 21:53:26 +00:00
* feat:remove conda from setup * cool. more code about removing conda & env * optimize script * add python check * optimize setup * optimize setup * add warning info * optimize check * add node check & npm check * add cmake install suggestion * add poetry suggestion * add python command check * add python tools * add poetry * add graphrag poetry install command optimization * active poetry shell * fix duplicated log * avoid poetry multipul active * add sqlite3 check * optimize sqlite3 setup suggestion * optimize * add gitignore * reverse compose detect
291 lines
12 KiB
Bash
291 lines
12 KiB
Bash
#!/bin/bash
|
|
# Installation recommendations configuration
|
|
|
|
# Import logging utilities if not already imported
|
|
if ! command -v log_warning &>/dev/null; then
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/logging.sh"
|
|
fi
|
|
|
|
# Get installation recommendation for a package
|
|
get_install_recommendation() {
|
|
local package="$1"
|
|
local system_id="$2"
|
|
|
|
case "$package" in
|
|
"python")
|
|
get_python_recommendation "$system_id"
|
|
;;
|
|
"npm")
|
|
get_npm_recommendation "$system_id"
|
|
;;
|
|
"node")
|
|
get_node_recommendation "$system_id"
|
|
;;
|
|
"cmake")
|
|
get_cmake_recommendation "$system_id"
|
|
;;
|
|
"poetry")
|
|
get_poetry_recommendation "$system_id"
|
|
;;
|
|
"sqlite")
|
|
get_sqlite_recommendation "$system_id"
|
|
;;
|
|
*)
|
|
log_warning "No specific recommendation available for $package"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Python installation recommendations
|
|
get_python_recommendation() {
|
|
local system_id="$1"
|
|
|
|
case "$system_id" in
|
|
"macos")
|
|
log_warning "Recommended installation for macOS: 'brew install python3'"
|
|
log_warning "Or download from: https://www.python.org/downloads/macos/"
|
|
;;
|
|
"linux-debian")
|
|
log_warning "Recommended installation for Debian/Ubuntu: 'sudo apt update && sudo apt install python3 python3-pip'"
|
|
;;
|
|
"linux-fedora")
|
|
log_warning "Recommended installation for Fedora: 'sudo dnf install python3 python3-pip'"
|
|
;;
|
|
"linux-redhat")
|
|
log_warning "Recommended installation for CentOS/RHEL: 'sudo yum install python3 python3-pip'"
|
|
;;
|
|
"linux-arch")
|
|
log_warning "Recommended installation for Arch Linux: 'sudo pacman -S python python-pip'"
|
|
;;
|
|
"linux-alpine")
|
|
log_warning "Recommended installation for Alpine Linux: 'apk add python3 py3-pip'"
|
|
;;
|
|
"linux-other")
|
|
log_warning "Please install Python 3.12+ using your distribution's package manager"
|
|
log_warning "Or download from: https://www.python.org/downloads/linux/"
|
|
;;
|
|
"windows")
|
|
log_warning "Recommended installation for Windows:"
|
|
log_warning "1. Download from: https://www.python.org/downloads/windows/"
|
|
log_warning "2. Or using winget: 'winget install Python.Python.3'"
|
|
log_warning "3. Or using Chocolatey: 'choco install python'"
|
|
;;
|
|
*)
|
|
log_warning "Please download Python from: https://www.python.org/downloads/"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# NPM installation recommendations
|
|
get_npm_recommendation() {
|
|
local system_id="$1"
|
|
|
|
case "$system_id" in
|
|
"macos")
|
|
log_warning "Recommended installation for macOS: 'brew install npm'"
|
|
;;
|
|
"linux-debian")
|
|
log_warning "Recommended installation for Debian/Ubuntu: 'sudo apt update && sudo apt install npm'"
|
|
;;
|
|
"linux-fedora")
|
|
log_warning "Recommended installation for Fedora: 'sudo dnf install npm'"
|
|
;;
|
|
"linux-redhat")
|
|
log_warning "Recommended installation for CentOS/RHEL: 'sudo yum install npm'"
|
|
;;
|
|
"linux-arch")
|
|
log_warning "Recommended installation for Arch Linux: 'sudo pacman -S npm'"
|
|
;;
|
|
"linux-alpine")
|
|
log_warning "Recommended installation for Alpine Linux: 'apk add npm'"
|
|
;;
|
|
"linux-other")
|
|
log_warning "Please install npm using your distribution's package manager"
|
|
;;
|
|
"windows")
|
|
log_warning "Recommended installation for Windows:"
|
|
log_warning "1. Install Node.js (includes npm): https://nodejs.org/en/download/"
|
|
log_warning "2. Or using winget: 'winget install OpenJS.NodeJS'"
|
|
log_warning "3. Or using Chocolatey: 'choco install nodejs'"
|
|
;;
|
|
*)
|
|
log_warning "Please install Node.js (includes npm): https://nodejs.org/en/download/"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Node.js installation recommendations
|
|
get_node_recommendation() {
|
|
local system_id="$1"
|
|
|
|
case "$system_id" in
|
|
"macos")
|
|
log_warning "Recommended installation for macOS: 'brew install node'"
|
|
;;
|
|
"linux-debian")
|
|
log_warning "Recommended installation for Debian/Ubuntu: 'sudo apt update && sudo apt install nodejs'"
|
|
;;
|
|
"linux-fedora")
|
|
log_warning "Recommended installation for Fedora: 'sudo dnf install nodejs'"
|
|
;;
|
|
"linux-redhat")
|
|
log_warning "Recommended installation for CentOS/RHEL: 'sudo yum install nodejs'"
|
|
;;
|
|
"linux-arch")
|
|
log_warning "Recommended installation for Arch Linux: 'sudo pacman -S nodejs'"
|
|
;;
|
|
"linux-alpine")
|
|
log_warning "Recommended installation for Alpine Linux: 'apk add nodejs'"
|
|
;;
|
|
"linux-other")
|
|
log_warning "Please install Node.js using your distribution's package manager"
|
|
;;
|
|
"windows")
|
|
log_warning "Recommended installation for Windows:"
|
|
log_warning "1. Download from: https://nodejs.org/en/download/"
|
|
log_warning "2. Or using winget: 'winget install OpenJS.NodeJS'"
|
|
log_warning "3. Or using Chocolatey: 'choco install nodejs'"
|
|
;;
|
|
*)
|
|
log_warning "Please download Node.js from: https://nodejs.org/en/download/"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# CMake installation recommendations
|
|
get_cmake_recommendation() {
|
|
local system_id="$1"
|
|
|
|
case "$system_id" in
|
|
"macos")
|
|
log_warning "Recommended installation for macOS: 'brew install cmake'"
|
|
;;
|
|
"linux-debian")
|
|
log_warning "Recommended installation for Debian/Ubuntu: 'sudo apt update && sudo apt install cmake'"
|
|
;;
|
|
"linux-fedora")
|
|
log_warning "Recommended installation for Fedora: 'sudo dnf install cmake'"
|
|
;;
|
|
"linux-redhat")
|
|
log_warning "Recommended installation for CentOS/RHEL: 'sudo yum install cmake'"
|
|
;;
|
|
"linux-arch")
|
|
log_warning "Recommended installation for Arch Linux: 'sudo pacman -S cmake'"
|
|
;;
|
|
"linux-alpine")
|
|
log_warning "Recommended installation for Alpine Linux: 'apk add cmake'"
|
|
;;
|
|
"linux-other")
|
|
log_warning "Please install CMake using your distribution's package manager"
|
|
log_warning "Or download from: https://cmake.org/download/"
|
|
;;
|
|
"windows")
|
|
log_warning "Recommended installation for Windows:"
|
|
log_warning "1. Download from: https://cmake.org/download/"
|
|
log_warning "2. Or using winget: 'winget install Kitware.CMake'"
|
|
log_warning "3. Or using Chocolatey: 'choco install cmake'"
|
|
;;
|
|
*)
|
|
log_warning "Please download CMake from: https://cmake.org/download/"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Poetry installation recommendations
|
|
get_poetry_recommendation() {
|
|
local system_id="$1"
|
|
|
|
case "$system_id" in
|
|
"macos")
|
|
log_warning "Recommended installation for macOS:"
|
|
log_warning "1. 'brew install poetry'"
|
|
log_warning "2. Or using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
|
|
;;
|
|
"linux-debian")
|
|
log_warning "Recommended installation for Debian/Ubuntu:"
|
|
log_warning "1. Using pipx (recommended): 'sudo apt install pipx && pipx install poetry'"
|
|
log_warning "2. Or using the official installer in your home directory:"
|
|
log_warning " 'curl -sSL https://install.python-poetry.org | python3 -'"
|
|
log_warning "3. Or in a virtual environment:"
|
|
log_warning " 'python3 -m venv ~/.poetry-venv && ~/.poetry-venv/bin/pip install poetry'"
|
|
log_warning " Then add ~/.poetry-venv/bin to your PATH"
|
|
;;
|
|
"linux-fedora")
|
|
log_warning "Recommended installation for Fedora:"
|
|
log_warning "1. 'sudo dnf install poetry'"
|
|
log_warning "2. Or using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
|
|
;;
|
|
"linux-redhat")
|
|
log_warning "Recommended installation for CentOS/RHEL:"
|
|
log_warning "1. Using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
|
|
;;
|
|
"linux-arch")
|
|
log_warning "Recommended installation for Arch Linux:"
|
|
log_warning "1. 'sudo pacman -S python-poetry'"
|
|
;;
|
|
"linux-alpine")
|
|
log_warning "Recommended installation for Alpine Linux:"
|
|
log_warning "1. 'apk add py3-poetry'"
|
|
log_warning "2. Or using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
|
|
;;
|
|
"linux-other")
|
|
log_warning "Recommended installation for Linux:"
|
|
log_warning "1. Using the official installer: 'curl -sSL https://install.python-poetry.org | python3 -'"
|
|
;;
|
|
"windows")
|
|
log_warning "Recommended installation for Windows:"
|
|
log_warning "1. Using PowerShell: '(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -'"
|
|
log_warning "2. Or using Chocolatey: 'choco install poetry'"
|
|
;;
|
|
*)
|
|
log_warning "Please install Poetry using the official installer:"
|
|
log_warning "curl -sSL https://install.python-poetry.org | python3 -"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# SQLite installation recommendations
|
|
get_sqlite_recommendation() {
|
|
local system_id="$1"
|
|
|
|
case "$system_id" in
|
|
"macos")
|
|
log_warning "Recommended installation for SQLite on macOS:"
|
|
log_warning "1. 'brew install sqlite'"
|
|
log_warning "SQLite is usually pre-installed on macOS, but this will ensure you have the latest version."
|
|
;;
|
|
"linux-debian")
|
|
log_warning "Recommended installation for SQLite on Debian/Ubuntu:"
|
|
log_warning "1. 'sudo apt update && sudo apt install sqlite3'"
|
|
;;
|
|
"linux-fedora")
|
|
log_warning "Recommended installation for SQLite on Fedora:"
|
|
log_warning "1. 'sudo dnf install sqlite'"
|
|
;;
|
|
"linux-redhat")
|
|
log_warning "Recommended installation for SQLite on CentOS/RHEL:"
|
|
log_warning "1. 'sudo yum install sqlite'"
|
|
;;
|
|
"linux-arch")
|
|
log_warning "Recommended installation for SQLite on Arch Linux:"
|
|
log_warning "1. 'sudo pacman -S sqlite'"
|
|
;;
|
|
"linux-alpine")
|
|
log_warning "Recommended installation for SQLite on Alpine Linux:"
|
|
log_warning "1. 'apk add sqlite'"
|
|
;;
|
|
"linux-other")
|
|
log_warning "Recommended installation for SQLite on Linux:"
|
|
log_warning "Please install SQLite using your distribution's package manager"
|
|
;;
|
|
"windows")
|
|
log_warning "Recommended installation for SQLite on Windows:"
|
|
log_warning "1. Download from: https://www.sqlite.org/download.html"
|
|
log_warning "2. Or using Chocolatey: 'choco install sqlite'"
|
|
;;
|
|
*)
|
|
log_warning "Please download SQLite from: https://www.sqlite.org/download.html"
|
|
;;
|
|
esac
|
|
}
|