Обновить setup_vps.sh
This commit is contained in:
parent
7ebab4b086
commit
96f792b8cb
62
setup_vps.sh
62
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
|
||||
|
Loading…
Reference in New Issue
Block a user