Обновить setup_vps.sh

This commit is contained in:
NW 2025-05-13 15:49:52 +00:00
parent 7ebab4b086
commit 96f792b8cb

View File

@ -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