70 lines
1.9 KiB
Bash
70 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# ============================================================
|
|
# Node.js v20.18.0 riscv64 - Installation Script
|
|
# Usage: sudo bash install.sh
|
|
# ============================================================
|
|
|
|
set -e
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
|
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
|
error() { echo -e "${RED}[ERROR]${NC} $1"; exit 1; }
|
|
|
|
if [ "$EUID" -ne 0 ]; then
|
|
error "Please run as root: sudo bash install.sh"
|
|
fi
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
INSTALL_PREFIX="/usr/local"
|
|
|
|
info "Installing Node.js v20.18.0 to $INSTALL_PREFIX..."
|
|
|
|
# Backup existing node
|
|
if command -v node &>/dev/null; then
|
|
OLD_VER=$(node --version 2>/dev/null || echo "unknown")
|
|
warn "Existing Node.js found: $OLD_VER"
|
|
warn "Backing up to /usr/local/bin/node.backup"
|
|
cp "$(which node)" /usr/local/bin/node.backup 2>/dev/null || true
|
|
fi
|
|
|
|
# Copy binaries
|
|
info "Copying binaries..."
|
|
cp "$SCRIPT_DIR/bin/node" "$INSTALL_PREFIX/bin/node"
|
|
chmod +x "$INSTALL_PREFIX/bin/node"
|
|
|
|
# Copy npm/npx if available
|
|
for bin in npm npx; do
|
|
if [ -f "$SCRIPT_DIR/bin/$bin" ]; then
|
|
cp "$SCRIPT_DIR/bin/$bin" "$INSTALL_PREFIX/bin/$bin"
|
|
chmod +x "$INSTALL_PREFIX/bin/$bin"
|
|
fi
|
|
done
|
|
|
|
# Copy lib directory if available
|
|
if [ -d "$SCRIPT_DIR/lib" ]; then
|
|
info "Copying libraries..."
|
|
mkdir -p "$INSTALL_PREFIX/lib"
|
|
cp -r "$SCRIPT_DIR/lib/"* "$INSTALL_PREFIX/lib/" 2>/dev/null || true
|
|
fi
|
|
|
|
# Verify installation
|
|
info "Verifying installation..."
|
|
INSTALLED_VER=$("$INSTALL_PREFIX/bin/node" --version 2>/dev/null)
|
|
if [ -n "$INSTALLED_VER" ]; then
|
|
info "✅ Node.js $INSTALLED_VER installed successfully!"
|
|
else
|
|
error "Installation verification failed"
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}============================================${NC}"
|
|
echo -e " Node.js $INSTALLED_VER installed!"
|
|
echo -e " Path: $INSTALL_PREFIX/bin/node"
|
|
echo -e "${GREEN}============================================${NC}"
|
|
echo ""
|