#!/bin/bash # Функция для проверки установки пакета check_install() { if command -v $1 &> /dev/null; then echo "$1 уже установлен." else echo "Установка $1..." sudo apt-get install -y $1 if [ $? -eq 0 ]; then echo "$1 успешно установлен." else echo "Ошибка при установке $1." exit 1 fi fi } # Обновление пакетов echo "Обновление пакетов..." sudo apt-get update && sudo apt-get upgrade -y if [ $? -ne 0 ]; then echo "Ошибка при обновлении пакетов." exit 1 fi # Установка tmux check_install tmux # Установка mc (Midnight Commander) check_install mc # Установка git check_install git # Установка net-tools check_install net-tools # Установка Docker if ! command -v docker &> /dev/null; then echo "Установка Docker..." sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io if [ $? -eq 0 ]; then echo "Docker успешно установлен." else echo "Ошибка при установке Docker." exit 1 fi else echo "Docker уже установлен." fi # Установка Docker Compose Plugin (docker compose, без дефиса) if ! docker compose version &> /dev/null; then echo "Установка Docker Compose Plugin..." sudo apt-get install -y docker-compose-plugin if [ $? -eq 0 ]; then echo "Docker Compose Plugin успешно установлен." else echo "Ошибка при установке Docker Compose Plugin." exit 1 fi else echo "Docker Compose Plugin уже установлен." fi # Установка dry (интерфейс для управления Docker) if ! command -v dry &> /dev/null; then echo "Установка dry..." curl -sSL https://github.com/moncho/dry/releases/latest/download/dry-linux-amd64 -o dry chmod +x dry sudo mv dry /usr/local/bin/ if [ $? -eq 0 ]; then echo "dry успешно установлен." else echo "Ошибка при установке dry." exit 1 fi else echo "dry уже установлен." fi # Установка btop с поддержкой GPU if ! command -v btop &> /dev/null; then echo "Установка btop с поддержкой GPU..." # Установка зависимостей для компиляции echo "Установка зависимостей для компиляции btop..." sudo apt-get install -y coreutils sed git build-essential gcc-11 g++-11 # Клонирование репозитория btop echo "Клонирование репозитория btop..." git clone https://github.com/aristocratos/btop.git cd btop # Компиляция с поддержкой GPU echo "Компиляция btop с поддержкой GPU..." make GPU_SUPPORT=true # Установка btop echo "Установка btop..." sudo make install # Настройка прав для мониторинга GPU echo "Настройка прав для мониторинга GPU..." sudo make setcap # Возврат в исходную директорию cd .. rm -rf btop if [ $? -eq 0 ]; then echo "btop успешно установлен с поддержкой GPU." else echo "Ошибка при установке btop." exit 1 fi else echo "btop уже установлен." fi # Добавление текущего пользователя в группу docker if ! groups $USER | grep -q '\bdocker\b'; then echo "Добавление пользователя $USER в группу docker..." sudo usermod -aG docker $USER if [ $? -eq 0 ]; then echo "Пользователь $USER добавлен в группу docker." echo "Перезагрузите сессию или выполните 'newgrp docker' для применения изменений." else echo "Ошибка при добавлении пользователя в группу docker." exit 1 fi else echo "Пользователь $USER уже в группе docker." fi # Клонирование репозитория REPO_URL="https://git.softuniq.eu/OpenDoor/opendoor-vpn-to-tor.git" REPO_DIR="opendoor-vpn-to-tor" if [ -d "$REPO_DIR" ]; then echo "Репозиторий уже клонирован в директорию $REPO_DIR." else echo "Клонирование репозитория $REPO_URL..." git clone "$REPO_URL" "$REPO_DIR" if [ $? -eq 0 ]; then echo "Репозиторий успешно клонирован в директорию $REPO_DIR." else echo "Ошибка при клонировании репозитория." exit 1 fi fi # Копирование файлов из папки tmux в /root/ TMUX_SOURCE_DIR="./tmux/" TMUX_TARGET_DIR="/root/" if [ -d "$TMUX_SOURCE_DIR" ]; then echo "Копирование файлов из $TMUX_SOURCE_DIR в $TMUX_TARGET_DIR..." sudo cp -r "$TMUX_SOURCE_DIR"/* "$TMUX_TARGET_DIR" if [ $? -eq 0 ]; then echo "Файлы успешно скопированы." else echo "Ошибка при копировании файлов." exit 1 fi else echo "Папка $TMUX_SOURCE_DIR не найдена. Копирование не выполнено." fi # Вывод версий установленных программ echo "Установленные версии:" tmux -V mc -V dry --version docker --version docker compose version git --version btop --version ifconfig --version echo "Установка и настройка завершены!"