Найти в Дзене
Сисадмин

Как автоматизировать установку софта в Linux: подробный гайд с примерами

Автоматизация установки ПО в Linux — это не только удобно, но и жизненно необходимо в большой компании или если у тебя в управлении пара тысяч серверов. Ну или в тех случаях, когда вы настраиваете несколько машин, разворачиваете окружение в облаке или просто не хотите каждый раз вручную вводить десятки команд. Ниже — пошагово, как это делаю я. Если есть, что добавить, пишите в комментах ниже. Почти все Linux-дистрибутивы имеют встроенные пакетные менеджеры. Для Debian/Ubuntu — это apt, для Fedora — dnf, для Arch — pacman. sudo apt update && sudo apt install -y curl git htop zsh Флаг -y автоматически отвечает «yes» на все запросы — это ключ к автоматизации. Можно написать простой bash-скрипт, который: #!/bin/bash
echo "Обновление системы..."
sudo apt update && sudo apt upgrade -y
echo "Установка нужных пакетов..."
sudo apt install -y curl git htop zsh net-tools neofetch
echo "Установка oh-my-zsh..."
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/in
Оглавление
Как автоматизировать установку софта в Linux
Как автоматизировать установку софта в Linux

Автоматизация установки ПО в Linux — это не только удобно, но и жизненно необходимо в большой компании или если у тебя в управлении пара тысяч серверов. Ну или в тех случаях, когда вы настраиваете несколько машин, разворачиваете окружение в облаке или просто не хотите каждый раз вручную вводить десятки команд. Ниже — пошагово, как это делаю я. Если есть, что добавить, пишите в комментах ниже.

1. Используем пакетный менеджер (APT, DNF, Pacman и др.)

Почти все Linux-дистрибутивы имеют встроенные пакетные менеджеры. Для Debian/Ubuntu — это apt, для Fedora — dnf, для Arch — pacman.

Пример для Ubuntu/Debian:

sudo apt update && sudo apt install -y curl git htop zsh

Флаг -y автоматически отвечает «yes» на все запросы — это ключ к автоматизации.

🛠 2. Создаём скрипт установки

Можно написать простой bash-скрипт, который:

  • Обновит систему
  • Установит нужные пакеты
  • Настроит окружение

Пример install.sh:

#!/bin/bash

echo "Обновление системы..."
sudo apt update && sudo apt upgrade -y

echo "Установка нужных пакетов..."
sudo apt install -y curl git htop zsh net-tools neofetch

echo "Установка oh-my-zsh..."
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

echo "Готово! Перезагрузите терминал для применения изменений."

Как запускать:

chmod +x install.sh
./install.sh

3. Установка стороннего ПО (через .deb, .rpm, AppImage и т.п.)

Пример: установка Visual Studio Code

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install -y code

4. Автоматизация через Ansible

Для более профессионального уровня автоматизации — используйте Ansible. Это инструмент, который управляет конфигурациями через YAML-плейбуки.

Пример playbook.yml:

---
- name: Установка софта на сервер Ubuntu
hosts: all
become: true
tasks:
- name: Обновление пакетов
apt:
update_cache: yes
upgrade: dist

- name: Установка нужных пакетов
apt:
name:
- curl
- git
- htop
- zsh
- neofetch
state: present

Запуск:

ansible-playbook -i inventory.ini playbook.yml

Где inventory.ini — файл с IP-адресами ваших серверов.

5. Настройка dotfiles и окружения

Можно хранить настройки .bashrc, .zshrc, .vimrc, alias-файлы и т.д. в отдельном Git-репозитории.

Пример:

git clone https://github.com/yourname/dotfiles.git
cd dotfiles
./install.sh # применяет симлинки и копирует файлы

6. Полная автоматизация при установке (cloud-init или kickstart)

Если вы настраиваете виртуальные машины или VPS — можно передавать скрипт установки через cloud-init.

Пример cloud-init для Ubuntu:

#cloud-config
packages:
- htop
- git
- curl
runcmd:
- curl -sSL https://raw.githubusercontent.com/youruser/install-linux-tools/main/install.sh | bash

💡 Полезные инструменты:

  • deb-get - Аналог winget для Ubuntu
  • Nala - Красивый и быстрый APT-менеджер
  • Homebrew - Пакетный менеджер, как на macOS
  • asdf - Менеджер версий Node, Python и др.
  • Flatpak/Snap - Установка "песоченных" приложений
  • chezmoi - Управление dotfiles с шаблонами

Бонус: генерация списка софта с текущей машины

Если хотите автоматизировать установку на другом ПК:

dpkg --get-selections > packages.list

На новой машине:

sudo apt update
sudo dpkg --set-selections < packages.list
sudo apt-get dselect-upgrade

ИТОГО

Автоматизация установки софта в Linux — это:

  • Быстро
  • Повторяемо
  • Уменьшает человеческий фактор
  • Отлично работает как на серверах, так и на рабочих станциях.