Обновить 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 esac
} }
# Функция для установки dry с учетом ARM архитектуры # Функция для установки dry на ARM устройства
install_dry() { install_dry() {
if command -v dry &> /dev/null; then if command -v dry &> /dev/null; then
echo -e "${GREEN}dry уже установлен.${NC}" echo -e "${GREEN}dry уже установлен.${NC}"
@@ -42,44 +42,46 @@ install_dry() {
echo -e "${YELLOW}Установка dry для ARM...${NC}" echo -e "${YELLOW}Установка dry для ARM...${NC}"
# 1. Попытка установки из репозиториев (если доступно) # 1. Попытка установки из репозиториев
if sudo apt-get install -y dry 2>/dev/null; then if sudo apt-get install -y dry 2>/dev/null; then
echo -e "${GREEN}dry успешно установлен из репозиториев.${NC}" echo -e "${GREEN}dry успешно установлен из репозиториев.${NC}"
return return
fi fi
# 2. Установка актуальной версии Go # 2. Установка предварительно собранного бинарника для ARM
echo -e "${YELLOW}Установка Go 1.21+ для сборки...${NC}" echo -e "${YELLOW}Установка готового бинарника для ARM...${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
# 3. Установка зависимостей # Определяем точную версию dry
echo -e "${YELLOW}Установка зависимостей...${NC}" LATEST_VERSION=$(curl -s https://api.github.com/repos/moncho/dry/releases/latest | grep 'tag_name' | cut -d\" -f4)
sudo apt-get install -y git make gcc
# 4. Сборка dry # Для Orange Pi Zero (ARMv7) используем armv6 бинарник для совместимости
echo -e "${YELLOW}Сборка dry из исходников...${NC}" DRY_URL="https://github.com/moncho/dry/releases/download/${LATEST_VERSION}/dry-linux-arm"
git clone https://github.com/moncho/dry.git /tmp/dry-build
cd /tmp/dry-build
if make build; then echo -e "${YELLOW}Скачивание dry...${NC}"
sudo mv dry /usr/local/bin/ if curl -fsSL "$DRY_URL" -o /tmp/dry; then
echo -e "${GREEN}dry успешно собран и установлен.${NC}" sudo mv /tmp/dry /usr/local/bin/dry
dry --version 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 else
echo -e "${RED}Не удалось собрать dry. Используйте готовые бинарные пакеты.${NC}" echo -e "${RED}Не удалось скачать dry.${NC}"
echo -e "${YELLOW}Можно попробовать установить вручную:${NC}" echo -e "${YELLOW}Альтернативные варианты:${NC}"
echo "wget https://github.com/moncho/dry/releases/download/v0.11.2/dry-linux-arm" echo "1. Установите вручную:"
echo "chmod +x dry-linux-arm" echo " wget https://github.com/moncho/dry/releases/latest/download/dry-linux-arm"
echo "sudo mv dry-linux-arm /usr/local/bin/dry" 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 fi
# Очистка
cd ~
rm -rf /tmp/dry-build
} }
# Функция для определения дистрибутива # Функция для определения дистрибутива
detect_distro() { detect_distro() {
if [ -f /etc/os-release ]; then if [ -f /etc/os-release ]; then