Tutorial 02 — Управление пакетами

Цель: Научиться искать, устанавливать, обновлять и удалять пакеты. Три пакетных менеджера: apt (Debian/Ubuntu), pacman (Arch), dnf (Fedora/RHEL).

Время: ~25 минут Требования: Пройден Tutorial 01. Терминал.

Шаг 1. Концепция

Пакет — архив с программой, её зависимостями и метаданными. Пакетный менеджер скачивает из репозитория (удалённого хранилища), разрешает зависимости и устанавливает.

Вы: "Установи nginx"
       ↓
Пакетный менеджер:
  1. Ищет nginx в репозитории
  2. Находит зависимости (libssl, libpcre)
  3. Скачивает nginx + зависимости
  4. Устанавливает всё
  5. Настраивает

Шаг 2. apt (Debian, Ubuntu, Mint)

# Обновить список пакетов (делать перед install!)
sudo apt update
 
# Обновить все установленные пакеты
sudo apt upgrade
 
# Найти пакет
apt search nginx
 
# Информация о пакете
apt show nginx
 
# Установить
sudo apt install nginx
 
# Установить несколько
sudo apt install git vim curl wget
 
# Удалить (оставить конфиги)
sudo apt remove nginx
 
# Удалить полностью (с конфигами)
sudo apt purge nginx
 
# Удалить неиспользуемые зависимости
sudo apt autoremove
 
# Список установленных
apt list --installed | grep nginx

Шаг 3. pacman (Arch, Manjaro)

# Синхронизировать + обновить всё
sudo pacman -Syu
 
# Найти пакет
pacman -Ss nginx
 
# Информация
pacman -Si nginx             # из репозитория
pacman -Qi nginx             # установленный
 
# Установить
sudo pacman -S nginx
 
# Удалить (с зависимостями)
sudo pacman -Rs nginx
 
# Список установленных
pacman -Q | grep nginx
 
# Какому пакету принадлежит файл?
pacman -Qo /usr/bin/nginx
 
# Очистить кэш
sudo pacman -Sc

Шаг 4. dnf (Fedora, RHEL, Rocky)

# Обновить все пакеты
sudo dnf upgrade
 
# Найти
dnf search nginx
 
# Информация
dnf info nginx
 
# Установить
sudo dnf install nginx
 
# Удалить
sudo dnf remove nginx
 
# Группы пакетов
dnf group list
sudo dnf group install "Development Tools"
 
# Список установленных
dnf list installed | grep nginx

Шаг 5. Практика — установите полезные утилиты

# Ubuntu/Debian
sudo apt update
sudo apt install htop tree jq curl wget git vim tmux
 
# Arch
sudo pacman -S htop tree jq curl wget git vim tmux
 
# Fedora
sudo dnf install htop tree jq curl wget git vim tmux

Проверьте:

htop              # интерактивный мониторинг (q для выхода)
tree -L 2 /etc    # дерево директорий
echo '{"a":1}' | jq .   # форматирование JSON

Шаг 6. pip и npm (для разработчиков)

# Python
pip install requests           # установить пакет
pip install -r requirements.txt # из файла
pip list                       # установленные
python -m venv .venv           # виртуальное окружение (РЕКОМЕНДУЕТСЯ)
source .venv/bin/activate
pip install flask
 
# Node.js
npm install express            # в текущий проект
npm install -g nodemon         # глобально
npm list

Сводная таблица

Действиеapt (Debian)pacman (Arch)dnf (Fedora)
Обновить индексapt updatepacman -Sydnf check-update
Обновить всёapt upgradepacman -Syudnf upgrade
Установитьapt install pkgpacman -S pkgdnf install pkg
Удалитьapt remove pkgpacman -Rs pkgdnf remove pkg
Найтиapt search pkgpacman -Ss pkgdnf search pkg
Информацияapt show pkgpacman -Si pkgdnf info pkg
Установленныеapt list --installedpacman -Qdnf list installed
Очисткаapt autoremovepacman -Scdnf autoremove

Типичные ошибки

ОшибкаРешение
Unable to locate packagesudo apt update перед install
Could not get lockДругой процесс apt работает. Подождать или sudo kill PID
Конфликт зависимостейsudo apt -f install (Debian) или pacman -Syu (Arch)
pip install без venv загрязняет системуВсегда python -m venv .venv

Что дальше

03-filesystem-and-commands — навигация, файлы, grep, find, пайпы

→ Подробнее по пакетам: pacman-and-aur или apt-and-ppa