864просмотров
8.3%от подписчиков
26 марта 2026 г.
Score: 950
🔧 Что на самом деле происходит, когда вы запускаете apt upgrade Вы набираете две команды, жмёте Enter и уходите пить кофе. Но за эти секунды система делает куда больше, чем кажется. 1. Сначала идёт apt update Это не обновление пакетов — это обновление списков пакетов. APT обходит все репозитории из /etc/apt/sources.list и скачивает свежие индексы. Без этого шага upgrade работает по устаревшей карте. 2. Разрешение зависимостей APT строит граф зависимостей: какие пакеты нужно обновить, какие версии совместимы, что тянет что за собой. Это NP-сложная задача в общем случае — и APT решает её эвристиками. Иногда неидеально. 3. Скачивание .deb-файлов Пакеты загружаются в /var/cache/apt/archives/. Если соединение оборвётся, то ничего страшного, при следующем запуске докачает. 4. Проверка подписей Каждый пакет проверяется по GPG-подписи. Это защита от подмены: если подпись не совпадает, то установка не пройдёт. 5. Распаковка и скрипты .deb это ar-архив, внутри которого лежат control.tar и data.tar. APT распаковывает файлы, а потом запускает скрипты: preinst → установка → postinst. Именно здесь может что-то пойти не так. 6. apt upgrade vs apt full-upgrade upgrade никогда не удаляет пакеты и не устанавливает новые зависимости, если это ломает что-то существующее. full-upgrade (он же dist-upgrade) — может. Он агрессивнее и умнее одновременно. Что может пойти не так - Конфликт версий библиотек
- Новый конфиг поверх старого (dpkg спросит — не игнорируйте)
- Обновление ядра без перезагрузки (старое ядро всё ещё работает до ребута)
- held packages — пакеты на удержании, которые не обновятся без явного разрешения Полезные команды:
apt list --upgradable # что будет обновлено
apt-get -s upgrade # симуляция без изменений
/var/log/apt/history.log # история всех операций Две строчки в терминале и десятки процессов под капотом. Теперь вы знаете, что именно происходит за этим скромным [Y/n]. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека devops'a #арсенал_инженера