Обновить setup_vps.sh
This commit is contained in:
58
setup_vps.sh
58
setup_vps.sh
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user