From 098e134e3a61486368a9c4d83470354c357984c7 Mon Sep 17 00:00:00 2001 From: NW Date: Tue, 13 May 2025 15:33:20 +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 | 52 ++++++++++++++++++++++------------------------------ 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/setup_vps.sh b/setup_vps.sh index 84b13d4..03a4d14 100644 --- a/setup_vps.sh +++ b/setup_vps.sh @@ -33,48 +33,40 @@ get_arch() { esac } -# Функция для установки dry +# Функция для установки dry с учетом архитектуры ARM install_dry() { if command -v dry &> /dev/null; then echo -e "${GREEN}dry уже установлен.${NC}" return fi - echo -e "${YELLOW}Установка dry...${NC}" + echo -e "${YELLOW}Установка dry для ARM...${NC}" - # Вариант 1: Установка через официальный скрипт - if curl -sSf https://moncho.github.io/dry/dryup.sh | sudo sh; then - sudo chmod 755 /usr/local/bin/dry - echo -e "${GREEN}dry успешно установлен через официальный скрипт.${NC}" + # Для ARM устройств используем установку из репозиториев + if sudo apt-get install -y dry; then + echo -e "${GREEN}dry успешно установлен из репозиториев.${NC}" return fi - echo -e "${YELLOW}Официальный скрипт не сработал, пробуем альтернативные методы...${NC}" + # Если не удалось установить из репозиториев, пробуем собрать из исходников + echo -e "${YELLOW}Установка зависимостей для сборки dry...${NC}" + sudo apt-get install -y git golang make - ARCH=$(get_arch) - echo -e "${YELLOW}Архитектура системы: $ARCH${NC}" - - # Вариант 2: Установка из репозиториев (для ARM) - if [[ "$ARCH" == "arm64" || "$ARCH" == "arm" ]]; then - echo -e "${YELLOW}Попытка установки dry из репозиториев...${NC}" - sudo apt-get install -y dry && return + 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}" + else + echo -e "${RED}Не удалось собрать dry из исходников.${NC}" fi - - # Вариант 3: Ручная установка бинарника - if [ "$ARCH" != "unsupported" ]; then - LATEST_VERSION=$(curl -s https://api.github.com/repos/moncho/dry/releases/latest | grep 'tag_name' | cut -d\" -f4) - DRY_URL="https://github.com/moncho/dry/releases/download/${LATEST_VERSION}/dry-linux-${ARCH}" - - echo -e "${YELLOW}Скачивание dry для архитектуры ${ARCH}...${NC}" - if curl -sSL $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}" - return - fi - fi - - echo -e "${RED}Не удалось установить dry. Пропускаем...${NC}" + + # Удаляем временные файлы + cd ~ + rm -rf /tmp/dry-build } # Функция для определения дистрибутива