Разница между apt update и apt upgrade в Ubuntu: правильное обновление системы
Почему путаница в этих двух командах опасна
Начинающие пользователи Linux часто считают команды apt update и apt upgrade синонимами или думают, что достаточно выполнить только одну из них. В результате сервер либо месяцами не получает критических патчей безопасности против уязвимостей ядра, либо администратор случайно ломает рабочие сайты, запустив обновление без понимания последствий.
Наглядная аналогия из реальной жизни
Представьте, что вы пришли в ресторан с меню:
apt update— это получить свежее меню ресторана с новыми ценами и блюдами. Вы просто прочитали список, но вам еще ничего не принесли и вы ничего не съели (программы на сервере НЕ обновились).apt upgrade— это сделать заказ официанту. Сервер берет прочитанное меню, скачивает новые версии программ из интернета и реально обновляет их на диске.
Правильный регламент обновления серверов на Debian / Ubuntu
Шаг 1: Обновление списка пакетов (apt update)
Команда обращается к серверам-репозиториям в интернете и обновляет локальную базу доступных версий:
sudo apt updateВ конце вывода система напишет, сколько именно программ имеют доступные обновления, например: «15 packages can be upgraded».
Шаг 2: Просмотр списка обновляемых программ
Посмотрим, какие именно пакеты требуют обновления:
apt list --upgradableШаг 3: Безопасное обновление программ (apt upgrade)
Запустим процесс скачивания и установки свежих версий:
sudo apt upgrade -yКоманда обновит только те программы, которые не требуют удаления других пакетов для разрешения конфликтов зависимостей.
Шаг 4: Установка критических обновлений ядра (apt dist-upgrade)
Если для обновления ядра Linux требуется установить новые зависимости и удалить устаревшие модули, используют команду:
sudo apt dist-upgrade -y
или в современном синтаксисе:
sudo apt full-upgrade -yШаг 5: Проверка необходимости перезагрузки
Если обновилось ядро Linux или системная библиотека systemd / glibc, сервер нужно перезагрузить. Проверьте наличие маркера перезагрузки:
if [ -f /var/run/reboot-required ]; then echo "Требуется перезагрузка сервера!"; fiТиповые ошибки администраторов
- Выполнение apt upgrade без предварительного apt update: Если запустить upgrade по старой базе репозиториев, система выдаст ошибку
404 Not Found, так как старых версий пакетов уже физически нет на серверах Ubuntu. - Автоматический dist-upgrade на Production серверах: Запуск dist-upgrade без бэкапа базы данных и снапшота виртуальной машины может внезапно обновить мажорную версию PHP/NodeJS/Python, что сломает несовместимый код клиентского сайта.
ITSTM берет на себя комплексное обслуживание серверов: тестирование обновлений на Dev-контурах, создание снапшотов и установку патчей безопасности в ночные окна обслуживания.
Частые вопросы (FAQ)
Как часто нужно запускать apt update и apt upgrade на сервере?
Обновлять списки пакетов и ставить патчи безопасности рекомендуется не реже одного раза в 1-2 недели, либо настроить автоматическую установку пакетов безопасности через 'unattended-upgrades'.
Как обновить только одну конкретную программу (например, только curl)?
Сначала обновите список 'sudo apt update', затем выполните команду: 'sudo apt --only-upgrade install curl'.
В чем разница между командами apt и apt-get?
apt — это современный, более удобный интерфейс с красивым цветным прогресс-баром для интерактивной работы человека в терминале. apt-get — классическая низкоуровневая утилита со стабильным синтаксисом, рекомендуемая для использования внутри автоматических bash-скриптов.
Что делать, если apt update выдает ошибку 'Repository is not signed / Release file expired'?
Проверьте системное время на сервере командой 'timedatectl' (рассинхронизация часов ломает проверку SSL/GPG сертификатов) или обновите ключи репозитория через apt-key / trusted.gpg.d.