update dry install

This commit is contained in:
NW 2025-05-17 19:49:34 +00:00
parent 96f792b8cb
commit 30e0eeff09

View File

@ -33,14 +33,16 @@ get_arch() {
esac esac
} }
# Функция для установки dry на ARM устройства # Функция для установки dry с учетом архитектуры
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}"
return return
fi fi
echo -e "${YELLOW}Установка dry для ARM...${NC}" # Определяем архитектуру
ARCH=$(get_arch)
echo -e "${YELLOW}Установка dry для архитектуры ${ARCH}...${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
@ -48,14 +50,30 @@ install_dry() {
return return
fi fi
# 2. Установка предварительно собранного бинарника для ARM # 2. Установка предварительно собранного бинарника для текущей архитектуры
echo -e "${YELLOW}Установка готового бинарника для ARM...${NC}" echo -e "${YELLOW}Установка готового бинарника...${NC}"
# Определяем точную версию dry # Определяем точную версию dry
LATEST_VERSION=$(curl -s https://api.github.com/repos/moncho/dry/releases/latest | grep 'tag_name' | cut -d\" -f4) LATEST_VERSION=$(curl -s https://api.github.com/repos/moncho/dry/releases/latest | grep 'tag_name' | cut -d\" -f4)
# Для Orange Pi Zero (ARMv7) используем armv6 бинарник для совместимости # Формируем URL в зависимости от архитектуры
DRY_URL="https://github.com/moncho/dry/releases/download/${LATEST_VERSION}/dry-linux-arm" case $ARCH in
"amd64")
DRY_URL="https://github.com/moncho/dry/releases/download/${LATEST_VERSION}/dry-linux-amd64"
;;
"arm64")
DRY_URL="https://github.com/moncho/dry/releases/download/${LATEST_VERSION}/dry-linux-arm64"
;;
"arm")
DRY_URL="https://github.com/moncho/dry/releases/download/${LATEST_VERSION}/dry-linux-arm"
;;
*)
echo -e "${RED}Неподдерживаемая архитектура: $ARCH${NC}"
echo -e "${YELLOW}Попробуйте установить через Docker:${NC}"
echo "docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock moncho/dry"
exit 1
;;
esac
echo -e "${YELLOW}Скачивание dry...${NC}" echo -e "${YELLOW}Скачивание dry...${NC}"
if curl -fsSL "$DRY_URL" -o /tmp/dry; then if curl -fsSL "$DRY_URL" -o /tmp/dry; then
@ -75,9 +93,9 @@ install_dry() {
echo -e "${RED}Не удалось скачать dry.${NC}" echo -e "${RED}Не удалось скачать dry.${NC}"
echo -e "${YELLOW}Альтернативные варианты:${NC}" echo -e "${YELLOW}Альтернативные варианты:${NC}"
echo "1. Установите вручную:" echo "1. Установите вручную:"
echo " wget https://github.com/moncho/dry/releases/latest/download/dry-linux-arm" echo " wget $DRY_URL"
echo " chmod +x dry-linux-arm" echo " chmod +x dry-linux-*"
echo " sudo mv dry-linux-arm /usr/local/bin/dry" echo " sudo mv dry-linux-* /usr/local/bin/dry"
echo "2. Используйте Docker-версию:" echo "2. Используйте Docker-версию:"
echo " docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock moncho/dry" echo " docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock moncho/dry"
fi fi