186 lines
6.4 KiB
Bash
186 lines
6.4 KiB
Bash
#!/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="$REPO_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 "Установка и настройка завершены!" |