From 96f792b8cb8421fa877a633652b7deb71fee0a7e Mon Sep 17 00:00:00 2001 From: NW Date: Tue, 13 May 2025 15:49:52 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20setup=5Fvps.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup_vps.sh | 62 +++++++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/setup_vps.sh b/setup_vps.sh index 7a133f4..6a6b0cf 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}" @@ -41,45 +41,47 @@ install_dry() { fi echo -e "${YELLOW}Установка dry для ARM...${NC}" - - # 1. Попытка установки из репозиториев (если доступно) + + # 1. Попытка установки из репозиториев if sudo apt-get install -y dry 2>/dev/null; then echo -e "${GREEN}dry успешно установлен из репозиториев.${NC}" return fi - # 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 + # 2. Установка предварительно собранного бинарника для ARM + echo -e "${YELLOW}Установка готового бинарника для ARM...${NC}" - # 3. Установка зависимостей - echo -e "${YELLOW}Установка зависимостей...${NC}" - sudo apt-get install -y git make gcc + # Определяем точную версию dry + LATEST_VERSION=$(curl -s https://api.github.com/repos/moncho/dry/releases/latest | grep 'tag_name' | cut -d\" -f4) + + # Для Orange Pi Zero (ARMv7) используем armv6 бинарник для совместимости + DRY_URL="https://github.com/moncho/dry/releases/download/${LATEST_VERSION}/dry-linux-arm" - # 4. Сборка dry - echo -e "${YELLOW}Сборка dry из исходников...${NC}" - git clone https://github.com/moncho/dry.git /tmp/dry-build - cd /tmp/dry-build - - if make build; then - sudo mv dry /usr/local/bin/ - echo -e "${GREEN}dry успешно собран и установлен.${NC}" - dry --version + echo -e "${YELLOW}Скачивание dry...${NC}" + if curl -fsSL "$DRY_URL" -o /tmp/dry; then + sudo mv /tmp/dry /usr/local/bin/dry + sudo chmod +x /usr/local/bin/dry + echo -e "${GREEN}dry успешно установлен.${NC}" + + # Проверка работы + if /usr/local/bin/dry --version; then + echo -e "${GREEN}Проверка прошла успешно.${NC}" + else + echo -e "${RED}Ошибка при запуске dry. Возможно несовместимость архитектуры.${NC}" + echo -e "${YELLOW}Попробуйте установить через Docker:${NC}" + echo "docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock moncho/dry" + fi else - 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" + echo -e "${RED}Не удалось скачать dry.${NC}" + echo -e "${YELLOW}Альтернативные варианты:${NC}" + echo "1. Установите вручную:" + echo " wget https://github.com/moncho/dry/releases/latest/download/dry-linux-arm" + echo " chmod +x dry-linux-arm" + echo " sudo mv dry-linux-arm /usr/local/bin/dry" + echo "2. Используйте Docker-версию:" + echo " docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock moncho/dry" fi - - # Очистка - cd ~ - rm -rf /tmp/dry-build } - # Функция для определения дистрибутива detect_distro() { if [ -f /etc/os-release ]; then