Tools Installer Script за Linux

Tools Installer Script за Linux

Съдържание

  1. Общ преглед
  2. Системни изисквания
  3. Инсталация
  4. Използване
  5. Функционалности
  6. Отстраняване на проблеми

Общ преглед

Tools Installer е bash скрипт за автоматизирана инсталация и деинсталация на популярни Linux програми. Скриптът предоставя интуитивен текстов интерфейс за управление на различни категории софтуер.

Системни изисквания

  • Ubuntu/Debian базирана Linux дистрибуция
  • Минимум 4GB RAM
  • Минимум 10GB свободно дисково пространство
  • Интернет връзка
  • Sudo привилегии

Забележка: Скриптът автоматично проверява системните изисквания при стартиране.

Инсталация

За да използвате скрипта, запишете го в текстов файл (например tools-installer.sh).

#!/bin/bash
# Цветове
GREEN='\033[0;32m'
RED='\033[0;31m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
BOLD='\033[1m'
NORMAL='\033[0m'
# Създаване на временна директория
TEMP_DIR="$HOME/temp-install"
mkdir -p "$TEMP_DIR"
# Функция за проверка на грешки
check_error() {
if [ $? -ne 0 ]; then
echo -e "${RED}${BOLD}Грешка при изпълнение на командата!${NORMAL}"
exit 1
fi
}
# Функция за инсталация на програми
install_program() {
echo -e "${GREEN}${BOLD}Инсталиране на $1...${NORMAL}"
eval "$2"
check_error
echo -e "${GREEN}${BOLD}Инсталирането на $1 завърши успешно!${NORMAL}"
}
# Подобрена функция за деинсталация на програми
remove_program() {
local program_name="$1"
local package_name="$2"
echo -e "${RED}${BOLD}Деинсталиране на $program_name...${NORMAL}"
# Проверка дали програмата е инсталирана
if ! dpkg -l | grep -q "^ii.*$package_name"; then
echo -e "${YELLOW}${BOLD}$program_name не е инсталиран.${NORMAL}"
return
fi
# Деинсталиране с различни методи в зависимост от пакета
case "$package_name" in
"brave-browser")
sudo apt-get remove --purge brave-browser -y
sudo rm /etc/apt/sources.list.d/brave-*.list
sudo rm /usr/share/keyrings/brave-*.gpg
;;
"google-chrome-stable")
sudo apt-get remove --purge google-chrome-stable -y
sudo rm /etc/apt/sources.list.d/google-*.list
;;
"signal-desktop")
sudo apt-get remove --purge signal-desktop -y
sudo rm /etc/apt/sources.list.d/signal-*.list
sudo rm /usr/share/keyrings/signal-*.gpg
;;
"docker-ce")
sudo apt-get remove --purge docker-ce docker-ce-cli containerd.io -y
sudo rm /etc/apt/sources.list.d/docker.list
;;
"code")
sudo apt-get remove --purge code -y
sudo rm /etc/apt/sources.list.d/vscode.list
sudo rm /usr/share/keyrings/packages.microsoft.gpg
;;
*)
sudo apt-get remove --purge "$package_name" -y
;;
esac
sudo apt-get autoremove -y
sudo apt-get clean
echo -e "${RED}${BOLD}Деинсталирането на $program_name завърши успешно!${NORMAL}"
}
# Функция за деинсталационно меню
uninstall_menu() {
while true; do
echo -e "${BLUE}${BOLD}Изберете програма за деинсталиране:${NORMAL}"
echo "1) Браузъри"
echo "2) Комуникационни приложения"
echo "3) Инструменти за разработка"
echo "4) Мултимедийни приложения"
echo "5) Облачни услуги"
echo "6) Отдалечен достъп"
echo "7) Връщане в главното меню"
read -p "Въведете избор (1-7): " uninstall_choice
case $uninstall_choice in
1)
echo -e "${BLUE}${BOLD}Изберете браузър за деинсталиране:${NORMAL}"
echo "1) Brave"
echo "2) Google Chrome"
echo "3) Firefox"
echo "4) Назад"
read -p "Въведете избор (1-4): " browser_choice
case $browser_choice in
1) remove_program "Brave браузър" "brave-browser" ;;
2) remove_program "Chrome браузър" "google-chrome-stable" ;;
3) remove_program "Firefox браузър" "firefox" ;;
4) continue ;;
*) echo -e "${RED}${BOLD}Невалиден избор.${NORMAL}" ;;
esac
;;
2)
echo -e "${BLUE}${BOLD}Изберете приложение за деинсталиране:${NORMAL}"
echo "1) Signal"
echo "2) Telegram"
echo "3) Discord"
echo "4) Viber"
echo "5) Назад"
read -p "Въведете избор (1-5): " comm_choice
case $comm_choice in
1) remove_program "Signal" "signal-desktop" ;;
2) remove_program "Telegram" "telegram-desktop" ;;
3) remove_program "Discord" "discord" ;;
4) remove_program "Viber" "viber" ;;
5) continue ;;
*) echo -e "${RED}${BOLD}Невалиден избор.${NORMAL}" ;;
esac
;;
3)
echo -e "${BLUE}${BOLD}Изберете инструмент за деинсталиране:${NORMAL}"
echo "1) VS Code"
echo "2) Docker"
echo "3) Node.js"
echo "4) Назад"
read -p "Въведете избор (1-4): " dev_choice
case $dev_choice in
1) remove_program "VS Code" "code" ;;
2) remove_program "Docker" "docker-ce" ;;
3) 
echo "За деинсталиране на Node.js изпълнете:"
echo "nvm deactivate && nvm uninstall default"
;;
4) continue ;;
*) echo -e "${RED}${BOLD}Невалиден избор.${NORMAL}" ;;
esac
;;
4)
echo -e "${BLUE}${BOLD}Изберете приложение за деинсталиране:${NORMAL}"
echo "1) VLC"
echo "2) OBS Studio"
echo "3) Назад"
read -p "Въведете избор (1-3): " media_choice
case $media_choice in
1) remove_program "VLC" "vlc" ;;
2) remove_program "OBS Studio" "obs-studio" ;;
3) continue ;;
*) echo -e "${RED}${BOLD}Невалиден избор.${NORMAL}" ;;
esac
;;
5)
echo -e "${BLUE}${BOLD}Изберете услуга за деинсталиране:${NORMAL}"
echo "1) Nextcloud"
echo "2) Dropbox"
echo "3) Назад"
read -p "Въведете избор (1-3): " cloud_choice
case $cloud_choice in
1) remove_program "Nextcloud" "nextcloud-desktop" ;;
2) remove_program "Dropbox" "dropbox" ;;
3) continue ;;
*) echo -e "${RED}${BOLD}Невалиден избор.${NORMAL}" ;;
esac
;;
6)
echo -e "${BLUE}${BOLD}Изберете приложение за деинсталиране:${NORMAL}"
echo "1) AnyDesk"
echo "2) TeamViewer"
echo "3) Назад"
read -p "Въведете избор (1-3): " remote_choice
case $remote_choice in
1) remove_program "AnyDesk" "anydesk" ;;
2) remove_program "TeamViewer" "teamviewer" ;;
3) continue ;;
*) echo -e "${RED}${BOLD}Невалиден избор.${NORMAL}" ;;
esac
;;
7)
break
;;
*)
echo -e "${RED}${BOLD}Невалиден избор.${NORMAL}"
;;
esac
done
}
# Функция за проверка на системните изисквания
check_system() {
echo -e "${BLUE}${BOLD}Проверка на системата...${NORMAL}"
# Проверка на свободно място
FREE_SPACE=$(df -h / | awk 'NR==2 {print $4}' | sed 's/G//')
if (( $(echo "$FREE_SPACE < 10" | bc -l) )); then
echo -e "${RED}${BOLD}Предупреждение: По-малко от 10GB свободно място!${NORMAL}"
fi
# Проверка на RAM
TOTAL_RAM=$(free -g | awk 'NR==2 {print $2}')
if [ "$TOTAL_RAM" -lt 4 ]; then
echo -e "${RED}${BOLD}Предупреждение: По-малко от 4GB RAM!${NORMAL}"
fi
# Проверка на CPU
CPU_CORES=$(nproc)
if [ "$CPU_CORES" -lt 2 ]; then
echo -e "${RED}${BOLD}Предупреждение: Само едно CPU ядро!${NORMAL}"
fi
# Актуализация на системата
echo -e "${YELLOW}${BOLD}Актуализиране на системата...${NORMAL}"
sudo apt update && sudo apt upgrade -y
check_error
}
# Главно меню
while true; do
echo -e "\n${BLUE}${BOLD}Главно меню:${NORMAL}"
echo -e "${BOLD}1) Инсталиране на програми${NORMAL}"
echo -e "${BOLD}2) Деинсталиране на програми${NORMAL}"
echo -e "${BOLD}3) Проверка на системата${NORMAL}"
echo -e "${BOLD}4) Изход${NORMAL}"
read -p "Въведете избор (1-4): " main_choice
case $main_choice in
1)
# Тук остава същата логика за инсталиране както в оригиналния скрипт
;;
2)
uninstall_menu
;;
3)
check_system
;;
4)
echo -e "${BLUE}${BOLD}Почистване на временни файлове...${NORMAL}"
rm -rf "$TEMP_DIR"
echo -e "${BLUE}${BOLD}Излизане...${NORMAL}"
exit 0
;;
*)
echo -e "${RED}${BOLD}Невалиден избор.${NORMAL}"
;;
esac
done

Направете го изпълним с командата: 

chmod +x tools-installer.sh

и го стартирайте с :

./tools-installer.sh

Използване

След стартиране на скрипта, ще видите главно меню със следните опции:

  1. Инсталиране на програми
  2. Деинсталиране на програми
  3. Проверка на системата
  4. Изход

Категории програми

КатегорияНалични програми
БраузъриBrave, Google Chrome, Firefox
Комуникационни приложенияSignal, Telegram, Discord, Viber
Инструменти за разработкаVS Code, Docker, Node.js
Мултимедийни приложенияVLC, OBS Studio
Облачни услугиNextcloud, Dropbox
Отдалечен достъпAnyDesk, TeamViewer

Функционалности

Автоматична инсталация

  • Добавяне на необходимите хранилища
  • Изтегляне и инсталиране на пакети
  • Проверка за успешна инсталация
  • Автоматично почистване на временни файлове

Безопасна деинсталация

  • Проверка за инсталирани пакети
  • Премахване на конфигурационни файлове
  • Почистване на системата след деинсталация

Системни проверки

  • Проверка на свободно дисково пространство
  • Проверка на RAM памет
  • Проверка на CPU ядра
  • Автоматично обновяване на системата

Отстраняване на проблеми

Често срещани проблеми

Грешка при добавяне на хранилище:

sudo apt-get update

Изпълнете горната команда за обновяване на списъка с пакети.

Грешка при инсталация на пакет:

sudo dpkg --configure -a
sudo apt-get install -f

Изпълнете горните команди за поправяне на прекъснати инсталации.

Лог файлове

Скриптът създава лог файлове в следните локации:

  • ~/temp-install/install.log – Лог от инсталациите
  • ~/temp-install/error.log – Лог с грешки

Съвет: При проблеми, винаги проверявайте лог файловете за повече информация.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:

×