Home » Основы управления пакетами: apt, yum, dnf и pkg
Основы управления пакетами: apt, yum, dnf и pkg

Основы управления пакетами: 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)


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked