diff --git a/setup_vps.sh b/setup_vps.sh index 03a4d14..7a133f4 100644 --- a/setup_vps.sh +++ b/setup_vps.sh @@ -33,7 +33,7 @@ get_arch() { esac } -# Функция для установки dry с учетом архитектуры ARM +# Функция для установки dry с учетом ARM архитектуры install_dry() { if command -v dry &> /dev/null; then echo -e "${GREEN}dry уже установлен.${NC}" @@ -42,29 +42,40 @@ install_dry() { echo -e "${YELLOW}Установка dry для ARM...${NC}" - # Для ARM устройств используем установку из репозиториев - if sudo apt-get install -y dry; then + # 1. Попытка установки из репозиториев (если доступно) + if sudo apt-get install -y dry 2>/dev/null; then echo -e "${GREEN}dry успешно установлен из репозиториев.${NC}" return fi - # Если не удалось установить из репозиториев, пробуем собрать из исходников - echo -e "${YELLOW}Установка зависимостей для сборки dry...${NC}" - sudo apt-get install -y git golang make + # 2. Установка актуальной версии Go + echo -e "${YELLOW}Установка Go 1.21+ для сборки...${NC}" + sudo rm -rf /usr/local/go + curl -fsSL https://dl.google.com/go/go1.21.6.linux-armv6l.tar.gz | sudo tar -C /usr/local -xz + export PATH=$PATH:/usr/local/go/bin - echo -e "${YELLOW}Клонирование репозитория dry...${NC}" + # 3. Установка зависимостей + echo -e "${YELLOW}Установка зависимостей...${NC}" + sudo apt-get install -y git make gcc + + # 4. Сборка dry + echo -e "${YELLOW}Сборка dry из исходников...${NC}" git clone https://github.com/moncho/dry.git /tmp/dry-build cd /tmp/dry-build - echo -e "${YELLOW}Сборка dry...${NC}" if make build; then sudo mv dry /usr/local/bin/ echo -e "${GREEN}dry успешно собран и установлен.${NC}" + dry --version else - echo -e "${RED}Не удалось собрать dry из исходников.${NC}" + echo -e "${RED}Не удалось собрать dry. Используйте готовые бинарные пакеты.${NC}" + echo -e "${YELLOW}Можно попробовать установить вручную:${NC}" + echo "wget https://github.com/moncho/dry/releases/download/v0.11.2/dry-linux-arm" + echo "chmod +x dry-linux-arm" + echo "sudo mv dry-linux-arm /usr/local/bin/dry" fi - # Удаляем временные файлы + # Очистка cd ~ rm -rf /tmp/dry-build }