- Home »

Основы управления пакетами: apt, yum, dnf и pkg
Если ты когда-нибудь настраивал сервер, то точно сталкивался с ситуацией: надо быстро поставить nginx, обновить php, вычистить старые пакеты или разобраться, почему что-то не обновляется. В этот момент на сцену выходят менеджеры пакетов — те самые apt, yum, dnf и pkg. Эта статья — не просто обзор, а твой быстрый старт и шпаргалка по основам управления пакетами в Linux и BSD. Разберём, как это работает, как всё быстро настроить, какие есть подводные камни и лайфхаки, а ещё — как автоматизировать рутину и не наступать на грабли. Всё — с примерами, схемами и практическими советами. Поехали!
Как это работает: что такое менеджер пакетов и зачем он нужен
Менеджер пакетов — это твой личный диспетчер программ. Он знает, где взять нужный софт, как его установить, обновить, удалить, а главное — как не сломать систему зависимостями. Это не просто архиватор или инсталлятор, а целая экосистема, которая:
- Хранит информацию о всех установленных пакетах
- Следит за версиями и обновлениями
- Автоматически подтягивает зависимости (то, без чего программа не заработает)
- Позволяет быстро откатить изменения
- Работает с репозиториями — официальными и сторонними
В мире Linux и BSD есть несколько основных систем управления пакетами:
- apt — Debian, Ubuntu и их производные
- yum — старый добрый Red Hat, CentOS (до 8 версии)
- dnf — Fedora, CentOS 8+, RHEL 8+ (пришёл на смену yum)
- pkg — FreeBSD и другие BSD-системы
Каждая из них решает одну задачу — управлять программами на сервере, но делает это по-своему. Дальше — разберёмся, как быстро и просто всё настроить и использовать.
Как быстро и просто всё настроить: пошаговый гайд
Вот ты только что поднял VPS или выделенный сервер (если ещё нет — заказать VPS или выделенный сервер). Система чистая, надо ставить софт. Вот что делать:
1. apt (Debian, Ubuntu)
# Обновить список пакетов и саму систему
sudo apt update
sudo apt upgrade
# Установить пакет
sudo apt install nginx
# Удалить пакет
sudo apt remove nginx
# Полностью удалить пакет с конфигами
sudo apt purge nginx
# Найти пакет
apt search php
# Посмотреть информацию о пакете
apt show nginx
# Очистить неиспользуемые зависимости
sudo apt autoremove
2. yum (CentOS 7, RHEL 7 и ниже)
# Обновить систему
sudo yum update
# Установить пакет
sudo yum install nginx
# Удалить пакет
sudo yum remove nginx
# Найти пакет
yum search php
# Информация о пакете
yum info nginx
3. dnf (Fedora, CentOS 8+, RHEL 8+)
# Обновить систему
sudo dnf update
# Установить пакет
sudo dnf install nginx
# Удалить пакет
sudo dnf remove nginx
# Найти пакет
dnf search php
# Информация о пакете
dnf info nginx
4. pkg (FreeBSD)
# Обновить репозитории
sudo pkg update
# Установить пакет
sudo pkg install nginx
# Удалить пакет
sudo pkg delete nginx
# Найти пакет
pkg search php
# Информация о пакете
pkg info nginx
Примеры, схемы, практические советы
Давай разберём пару кейсов из жизни.
Кейс 1: Быстрое обновление сервера
- Debian/Ubuntu:
sudo apt update && sudo apt upgrade -y
- CentOS 7:
sudo yum update -y
- CentOS 8/Fedora:
sudo dnf update -y
- FreeBSD:
sudo pkg upgrade
Рекомендация: Всегда делай update
перед установкой новых пакетов. Это спасёт от конфликтов и багов.
Кейс 2: Установка специфической версии пакета
- apt:
sudo apt install nginx=1.18.0-0ubuntu1
- yum/dnf:
sudo yum install nginx-1.18.0
илиsudo dnf install nginx-1.18.0
- pkg:
sudo pkg install nginx-1.18.0
Рекомендация: Указывай версию, если нужна стабильность или совместимость. Но помни: не всегда в репозиториях есть нужная версия.
Кейс 3: Чистка системы от мусора
- apt:
sudo apt autoremove
иsudo apt clean
- yum/dnf:
sudo yum autoremove
илиsudo dnf autoremove
- pkg:
sudo pkg autoremove
Рекомендация: Регулярно чисти систему — это экономит место и ускоряет работу.
Таблица сравнения команд
Действие | apt | yum | dnf | pkg |
---|---|---|---|---|
Обновить список пакетов | apt update | yum check-update | dnf check-update | pkg update |
Установить пакет | apt install | yum install | dnf install | pkg install |
Удалить пакет | apt remove | yum remove | dnf remove | pkg delete |
Очистить неиспользуемые | apt autoremove | yum autoremove | dnf autoremove | pkg autoremove |
Положительные и отрицательные кейсы
-
Плюс: apt и dnf умеют автоматически подтягивать зависимости, что экономит кучу времени.
Минус: Иногда тянут лишнее — например, ставишь одну утилиту, а прилетает полсотни библиотек. -
Плюс: pkg на FreeBSD очень быстрый и минималистичный.
Минус: Меньше пакетов в официальных репах, чем у Linux. -
Плюс: yum и dnf поддерживают работу с группами пакетов (например,
dnf groupinstall "Web Server"
).
Минус: Иногда группы устаревают или содержат лишнее. -
Плюс: Все менеджеры поддерживают работу через скрипты и автоматизацию.
Минус: Если не следить за зависимостями, можно случайно снести что-то важное.
Похожие решения, программы и утилиты
- snap — кроссплатформенный менеджер пакетов от Canonical
- flatpak — универсальный менеджер пакетов для Linux
- Homebrew — для macOS и Linux
- pacman — менеджер пакетов Arch Linux
Но для серверов чаще всего используют apt, yum, dnf и pkg — они максимально интегрированы в систему.
Статистика и сравнение
- В Debian/Ubuntu репозитории содержат более 60 000 пакетов.
- В CentOS/Fedora — около 20 000, но есть EPEL и сторонние репы.
- В FreeBSD — около 30 000, но почти всё можно собрать из портов.
Интересный факт: dnf был написан на Python, а apt — на C++. pkg в BSD — на C. Это влияет на скорость работы и расширяемость.
Нестандартные способы использования и лайфхаки
- Можно создавать свои локальные репозитории (например, для корпоративных пакетов или кастомных сборок).
- apt и dnf поддерживают прокси — удобно, если сервер без прямого выхода в интернет.
- dnf умеет работать с плагинами — например, для автоматического удаления старых ядер (
dnf install dnf-plugins-core
). - pkg на FreeBSD позволяет делать снапшоты состояния системы перед обновлением.
- Все менеджеры поддерживают работу в non-interactive режиме — идеально для автоматизации и CI/CD.
Автоматизация и скрипты: новые возможности
Менеджеры пакетов — это must-have для автоматизации. Вот что можно делать:
- Писать bash-скрипты для быстрой установки и настройки окружения
- Делать автодеплой через Ansible, SaltStack, Puppet — все они используют apt/yum/dnf/pkg под капотом
- Обновлять систему по расписанию (cron + apt/yum/dnf/pkg)
- Создавать свои мета-пакеты для быстрой установки набора софта
Пример простого скрипта для установки LAMP-стека на Ubuntu:
#!/bin/bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql
sudo systemctl enable apache2
sudo systemctl enable mysql
Всё — сервер готов к работе за пару минут!
Вывод — заключение и рекомендации
Управление пакетами — это фундамент любого серверного администрирования. Без apt, yum, dnf или pkg ты как без рук: не поставишь софт, не обновишь систему, не автоматизируешь рутину. Каждый менеджер пакетов имеет свои плюсы и минусы, но все они делают жизнь проще и безопаснее. Используй их для:
- Быстрой установки и обновления программ
- Чистки и оптимизации системы
- Автоматизации развёртывания серверов
- Контроля зависимостей и версий
Если ты только начинаешь — не бойся экспериментировать. Ставь тестовые VPS, пробуй разные дистрибутивы, автоматизируй рутину. А если нужен надёжный сервер под свои задачи — закажи VPS или выделенный сервер и прокачай свои навыки на практике. Аpt, yum, dnf и pkg — твои лучшие друзья в мире серверов. Удачи и стабильных аптаймов!
Официальные ресурсы для погружения:
Apt (Debian Wiki)
DNF Documentation
FreeBSD Handbook: pkg
YUM (Red Hat Docs)
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.