В статье разберём:
- как подготовить сервер к обновлению (резервный доступ, сеть, время);
- как определить дистрибутив и доступный пакетный менеджер (
apt
/dnf
/yum
); - чем отличаются
update
/upgrade
/dist-upgrade
иdnf upgrade
; - как установить «джентльменский набор» утилит для администрирования;
- типовые ошибки при обновлении и как их исправить.
Что понадобится
-
Доступ по SSH: IP-адрес, логин
root
или пользователь сsudo
. Желательно иметь доступ к веб-консоли (VNC/Web Console) в панели хостинга на случай потери SSH. -
Чистый терминал на Windows (PowerShell) или Linux/macOS. Проверим, что SSH-клиент установлен:
ssh -V ssh -h
Если команда не найдена: на Windows включите «OpenSSH Client» в дополнительных компонентах, на Linux/macOS SSH-клиент обычно предустановлен.
Подготовка перед обновлением
-
Откройте второй канал доступа. Запустите второе окно SSH, чтобы при ошибке перезапуска службы/сети вы могли быстро откатиться. На Windows просто откройте ещё один PowerShell и подключитесь теми же реквизитами.
-
Проверьте сетевое соединение и DNS. Обновление требует доступа к зеркалам репозиториев.
# Быстрая проверка IP-соединения ping -c 1 1.1.1.1 || ping -c 1 8.8.8.8 # Проверка DNS-резолвинга доменных имён ping -c 1 deb.debian.org || echo "Проблема с DNS?" curl -I https://archive.ubuntu.com || echo "Нет доступа к HTTPS?" # Дополнительно (systemd-resolved): resolvectl status | sed -n '1,60p' cat /etc/resolv.conf | sed -n '1,60p'
Типовые ошибки и решения:
-
Temporary failure in name resolution / Name or service not known — некорректный DNS.
# Временно укажем публичный DNS (systemd-resolved): sudo bash -c 'printf "[Resolve]\nDNS=1.1.1.1 8.8.8.8\nFallbackDNS=9.9.9.9\n" > /etc/systemd/resolved.conf.d/dns.conf' sudo systemctl restart systemd-resolved # Без resolved: пропишите nameserver в /etc/resolv.conf (только если он не символическая ссылка): sudo sed -i '1inameserver 1.1.1.1' /etc/resolv.conf
-
curl: (60) SSL certificate problem — неверное время/дата ломают TLS-проверку.
timedatectl status sudo timedatectl set-ntp true # Если NTP выключен или часовой пояс неверный: sudo timedatectl set-timezone UTC && sudo timedatectl set-ntp true
-
-
Сделайте снимок (snapshot) диска в панели провайдера, если сервер продуктивный. Это безопасная точка отката в случае конфликта пакетов или kernel-обновления.
-
Проверьте привилегии. Должен работать
sudo
:sudo -v || echo "Нет sudo? Выполните вход под root: su -"
Если «sudo: command not found»: войдите под
root
(su -
) и установитеsudo
пакетным менеджером вашей системы (ниже определим какой).
Определяем дистрибутив и пакетный менеджер
Нужно понять, что у вас: Debian/Ubuntu (apt) или RHEL-совместимая система (dnf/yum). Универсальные способы:
# Основной паспорт системы
cat /etc/os-release
# Ядро (полезно при крупных апгрейдах)
uname -r
# Что из менеджеров доступно:
command -v apt && echo "Используем apt"
command -v dnf && echo "Используем dnf"
command -v yum && echo "Используем yum"
Примеры идентификации:
-
Debian/Ubuntu: в
/etc/os-release
поляID=debian
илиID=ubuntu
. Менеджер —apt
. -
Rocky/AlmaLinux/CentOS Stream:
ID_LIKE="rhel fedora"
, менеджер —dnf
(на старых — может бытьyum
, который является совместимым фронтом к dnf). -
Amazon Linux: версии 2/2023 —
dnf
/yum
(зависит от поколения); смотрите/etc/os-release
.
Частые ошибки и как их починить:
-
lsb_release: command not found — на минимальных образах утилиты LSB отсутствуют. Это не критично, используйте
/etc/os-release
. При желании установите:# Debian/Ubuntu: sudo apt update sudo apt install -y lsb-release # RHEL-семейство: sudo dnf install -y redhat-lsb-core || sudo yum install -y redhat-lsb-core
-
apt: command not found — вы не на Debian/Ubuntu. Используйте
dnf
илиyum
. -
dnf: command not found, но есть yum — используйте
yum
. На очень минимальных образах может встречатьсяmicrodnf
:command -v microdnf && echo "Доступен microdnf (OCI-минимальные образы)"
-
sudo: command not found — войдите под
root
(su -
) и установите пакетsudo
соответствующим менеджером:# Примеры: apt update && apt install -y sudo dnf install -y sudo yum install -y sudo
Обновление системы через apt (Ubuntu/Debian)
Если у вас Ubuntu или Debian, используем apt
для обновления пакетов. Всегда выполняйте сначала update
(обновление индекса пакетов), затем upgrade
или full-upgrade
.
# Обновляем список пакетов
sudo apt update
# Устанавливаем доступные обновления (без удаления пакетов)
sudo apt upgrade -y
# Полное обновление (может обновить ядро и заменить пакеты)
sudo apt full-upgrade -y
Разбор команд:
-
apt update
— синхронизирует список пакетов с репозиториями. -
apt upgrade
— обновляет только те пакеты, которые можно заменить без удаления других. -
apt full-upgrade
— более глубокое обновление, может удалить или заменить пакеты, включая ядро. Используйте осторожно на продакшн-серверах.

Типовые ошибки и решения
-
«Could not resolve» / «Temporary failure in name resolution» — нет доступа к DNS или интернету. Проверьте сеть:
ping -c 1 google.com || ping -c 1 8.8.8.8
Если IP пингуется, но домены — нет, значит проблема с
/etc/resolv.conf
или DNS. -
«dpkg was interrupted» — прерванная установка пакетов.
sudo dpkg --configure -a
-
«Unable to acquire dpkg frontend lock» — уже запущен другой процесс apt/dpkg.
ps aux | grep apt sudo kill -9 PID_процесса sudo rm /var/lib/dpkg/lock-frontend /var/lib/apt/lists/lock /var/cache/apt/archives/lock
После этого повторите
sudo apt update
. -
«The following packages have been kept back» — пакеты не обновлены, так как требуют зависимостей. Используйте:
sudo apt full-upgrade
-
«404 Not Found [IP: …]» — репозиторий недоступен или устарел.
Проверьте содержимое
/etc/apt/sources.list
и замените зеркала на актуальные (для старых Ubuntu/Debian используйте архивные репозиторииold-releases
).
Совет: после обновления ядра перезагрузите сервер, чтобы изменения вступили в силу:
sudo reboot
Обновление системы через dnf / yum (CentOS, Rocky, AlmaLinux)
На серверах RHEL-семейства (CentOS Stream, Rocky, AlmaLinux, Amazon Linux) используется dnf
или yum
. В новых версиях yum
является просто алиасом к dnf
, поэтому команды практически идентичны.
# Проверим версию пакетного менеджера
dnf --version || yum --version
# Обновляем список пакетов и устанавливаем обновления
sudo dnf upgrade -y
# или
sudo yum update -y
Разбор:
-
dnf upgrade
— обновляет все пакеты до последних версий, включая ядро. -
yum update
— в старых системах выполняет ту же функцию. На CentOS 7/8 лучше использоватьyum
, на новых —dnf
.
Типичные ошибки и решения
-
«Another app is currently holding the yum lock» — менеджер пакетов уже используется.
sudo lsof /var/run/yum.pid sudo kill -9 PID_процесса sudo rm -f /var/run/yum.pid
-
«Failed to download metadata» — проблема с репозиторием.
# Очистите кеш и попробуйте снова sudo dnf clean all sudo dnf makecache sudo dnf upgrade -y
Если не помогает — отключите проблемный репозиторий в
/etc/yum.repos.d/*.repo
. -
«Error: rpmdb open failed» — повреждена база RPM.
sudo rpm --rebuilddb sudo dnf clean all sudo dnf upgrade -y
-
«No space left on device» — закончился диск, чаще всего раздел
/boot
.# Удалите старые ядра (аккуратно!) sudo dnf remove kernel-old # или почистите вручную: sudo dnf autoremove
Совет: после обновления ядра и системных библиотек также выполните sudo reboot
, чтобы сервер загрузился с новой версии.
Установка базовых утилит
После обновления системы стоит установить минимальный набор инструментов, которые пригодятся почти на каждом сервере. Это ускорит диагностику и сделает администрирование удобнее.
Ubuntu/Debian (apt)
sudo apt update
sudo apt install -y curl wget git htop net-tools unzip zip tar vim nano lsof ufw
CentOS/Rocky/AlmaLinux (dnf/yum)
sudo dnf install -y curl wget git htop net-tools unzip zip tar vim nano lsof firewalld
# или для старых версий
sudo yum install -y curl wget git htop net-tools unzip zip tar vim nano lsof firewalld
Что это за пакеты:
-
curl, wget — загрузка файлов и проверка доступности сайтов/портов.
-
git — управление репозиториями, часто нужно для деплоя проектов.
-
htop — удобный монитор ресурсов в реальном времени.
-
net-tools — старые, но полезные утилиты (ifconfig, netstat).
-
unzip, zip, tar — работа с архивами.
-
vim, nano — редакторы для работы с конфигурациями.
-
lsof — показывает, какие процессы используют файлы или порты.
-
ufw (Ubuntu/Debian) или firewalld (RHEL) — управление фаерволом.

Типовые ошибки и решения
-
«E: Unable to locate package …» — пакет не найден.
Возможные причины:
- не выполнен
sudo apt update
перед установкой; - пакет недоступен в стандартных репозиториях (например,
net-tools
в новых версиях Ubuntu).
- не выполнен
-
«No match for argument» (dnf/yum) — аналогичная ошибка, пакет отсутствует.
Решение: включите репозиторий EPEL:
sudo dnf install -y epel-release sudo dnf install -y htop
-
«Disk full» — не хватает места на разделе
/
или/var
.df -h sudo du -sh /var/cache/dnf/* sudo dnf clean all sudo apt clean
Типичные ошибки при обновлении и их решения
При обновлении системы через apt
, dnf
или yum
иногда возникают ошибки. Рассмотрим наиболее частые и способы их устранения.
Ubuntu/Debian (apt/dpkg)
-
Ошибка блокировки dpkg/apt:
E: Could not get lock /var/lib/dpkg/lock-frontend E: Unable to acquire the dpkg frontend lock
Причина — другой процесс уже использует apt (например, автоматическое обновление). Решение:
ps aux | grep apt sudo kill -9 PID_процесса sudo rm /var/lib/dpkg/lock-frontend /var/lib/apt/lists/lock /var/cache/apt/archives/lock sudo dpkg --configure -a
-
Повреждённая база dpkg:
dpkg: error: dpkg status database is locked by another process
Проверьте, что нет зависших процессов, затем пересоберите:
sudo dpkg --configure -a sudo apt install -f
-
Ошибки зависимостей:
The following packages have unmet dependencies...
Решение:
sudo apt --fix-broken install sudo apt full-upgrade
-
404 Not Found при обновлении — репозиторий устарел.
Замените зеркала в
/etc/apt/sources.list
или используйтеold-releases
для старых систем.
CentOS/Rocky/AlmaLinux (dnf/yum)
-
Блокировка yum/dnf:
Another app is currently holding the yum lock
Завершите процесс:
sudo lsof /var/run/yum.pid sudo kill -9 PID_процесса sudo rm -f /var/run/yum.pid
-
Ошибка базы RPM:
rpmdb: BDB0113 Thread/process ... failed: BDB1507 Thread died in Berkeley DB library Error: rpmdb open failed
Пересоберите базу:
sudo rm -f /var/lib/rpm/__db* sudo rpm --rebuilddb sudo dnf clean all
-
Проблемы с репозиториями:
Failed to download metadata for repo 'appstream'
Очистите кеш и создайте заново:
sudo dnf clean all sudo dnf makecache
-
Недостаточно места (особенно на разделе
/boot
):No space left on device
Решение — удалите старые ядра:
sudo dnf remove --oldinstallonly kernel sudo dnf autoremove
Итоги
-
Мы подготовили сервер к обновлению: проверили сеть, DNS и доступ по SSH.
-
Определили дистрибутив и выбрали подходящий пакетный менеджер (
apt
,dnf
илиyum
). -
Обновили систему и ядро, устранили типичные ошибки (lock dpkg, rpmdb, зависшие процессы).
-
Установили базовый набор утилит (
curl
,wget
,htop
,git
,nano
,lsof
,ufw/firewalld
). -
Разобрали частые проблемы и способы их решения.
Дальнейшие шаги: настройка фаервола, создание пользователя вместо root, включение fail2ban и резервного копирования.