Обновить setup_vps.sh

This commit is contained in:
NW 2025-05-13 14:31:03 +00:00
parent a10e045976
commit d3936ca9ac

View File

@ -33,34 +33,42 @@ get_arch() {
esac esac
} }
# Функция для установки dry с учетом архитектуры # Функция для установки dry согласно официальной документации
install_dry() { install_dry() {
ARCH=$(get_arch) if command -v dry &> /dev/null; then
echo -e "${YELLOW}Определена архитектура: $ARCH${NC}" echo -e "${GREEN}dry уже установлен.${NC}"
if [ "$ARCH" == "unsupported" ]; then
echo -e "${RED}Ваша архитектура не поддерживается. Пропускаем установку dry.${NC}"
return
fi
# Для ARM устройств используем версию из репозиториев
if [[ "$ARCH" == "arm64" || "$ARCH" == "arm" ]]; then
echo -e "${YELLOW}Установка dry из репозиториев для ARM...${NC}"
sudo apt-get install -y dry
return return
fi fi
echo -e "${YELLOW}Установка dry...${NC}" echo -e "${YELLOW}Установка dry...${NC}"
DRY_URL="https://github.com/moncho/dry/releases/latest/download/dry-linux-${ARCH}"
echo -e "${YELLOW}Скачивание dry для архитектуры ${ARCH}...${NC}"
if curl -fsSL $DRY_URL -o dry; then # Установка через go (если установлен)
chmod +x dry if command -v go &> /dev/null; then
sudo mv dry /usr/local/bin/ echo -e "${YELLOW}Установка через go...${NC}"
go install github.com/moncho/dry@latest
if [ $? -eq 0 ]; then
echo -e "${GREEN}dry успешно установлен через go.${NC}"
return
fi
fi
# Установка через скачивание бинарника
ARCH=$(get_arch)
if [ "$ARCH" == "unsupported" ]; then
echo -e "${RED}Архитектура не поддерживается для dry.${NC}"
return
fi
echo -e "${YELLOW}Скачивание dry для архитектуры ${ARCH}...${NC}"
LATEST_RELEASE=$(curl -s https://api.github.com/repos/moncho/dry/releases/latest | grep 'tag_name' | cut -d\" -f4)
DRY_URL="https://github.com/moncho/dry/releases/download/${LATEST_RELEASE}/dry-linux-${ARCH}"
if curl -fsSL $DRY_URL -o /tmp/dry; then
chmod +x /tmp/dry
sudo mv /tmp/dry /usr/local/bin/
echo -e "${GREEN}dry успешно установлен.${NC}" echo -e "${GREEN}dry успешно установлен.${NC}"
else else
echo -e "${RED}Ошибка при скачивании dry. Попробуем установить из репозиториев...${NC}" echo -e "${RED}Не удалось установить dry.${NC}"
sudo apt-get install -y dry || echo -e "${RED}Не удалось установить dry.${NC}"
fi fi
} }
@ -131,11 +139,7 @@ else
fi fi
# Установка dry # Установка dry
if ! command -v dry &> /dev/null; then install_dry
install_dry
else
echo -e "${GREEN}dry уже установлен.${NC}"
fi
# Установка btop # Установка btop
if ! command -v btop &> /dev/null; then if ! command -v btop &> /dev/null; then
@ -201,20 +205,25 @@ else
echo -e "${GREEN}Репозиторий уже клонирован.${NC}" echo -e "${GREEN}Репозиторий уже клонирован.${NC}"
fi fi
# Копирование файлов tmux # Копирование файлов tmux (с проверкой существования)
if [ -d "$REPO_DIR/tmux" ]; then if [ -d "$REPO_DIR" ]; then
echo -e "${YELLOW}Копирование файлов tmux в /root/...${NC}" if [ -d "$REPO_DIR/tmux" ]; then
sudo cp -r "$REPO_DIR/tmux/"* /root/ || echo -e "${RED}Не удалось скопировать файлы tmux.${NC}" echo -e "${YELLOW}Копирование файлов tmux...${NC}"
echo -e "${GREEN}Файлы tmux успешно скопированы.${NC}" sudo cp -r "$REPO_DIR/tmux/." /root/ 2>/dev/null && \
echo -e "${GREEN}Файлы tmux успешно скопированы.${NC}" || \
echo -e "${RED}Не удалось скопировать файлы tmux.${NC}"
else
echo -e "${YELLOW}Папка tmux не найдена в репозитории.${NC}"
fi
else else
echo -e "${YELLOW}Папка tmux не найдена в репозитории.${NC}" echo -e "${YELLOW}Репозиторий не найден, копирование tmux файлов невозможно.${NC}"
fi fi
# Вывод версий установленных программ # Вывод версий установленных программ
echo -e "\n${GREEN}=== Установленные версии ===${NC}" echo -e "\n${GREEN}=== Установленные версии ===${NC}"
tmux -V || echo "tmux: не удалось получить версию" tmux -V || echo "tmux: не удалось получить версию"
mc -V || echo "mc: не удалось получить версию" mc -V || echo "mc: не удалось получить версию"
command -v dry >/dev/null && dry --version || echo "dry: не установлен или не поддерживается" command -v dry >/dev/null && (echo -n "dry: "; dry --version 2>/dev/null || echo "версия неизвестна") || echo "dry: не установлен"
docker --version || echo "docker: не удалось получить версию" docker --version || echo "docker: не удалось получить версию"
docker compose version || echo "docker compose: не удалось получить версию" docker compose version || echo "docker compose: не удалось получить версию"
git --version || echo "git: не удалось получить версию" git --version || echo "git: не удалось получить версию"