TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4686 1.2K
🔧 Что на самом деле происходит, когда вы запускаете 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

#арсенал_инженера
  • ❤ 5
More from @devopsslib
  1. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 10, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →