В эпоху цифровых паровых машин и вычислительных механизмов, каждый системный администратор стал подобием инженера-механика, управляющего сложнейшим агрегатом из шестерёнок, пружин и клапанов. В этой статье мы рассмотрим, как провести инвентаризацию установленных “механизмов” (пакетов) в вашей Ubuntu, чтобы обеспечить точность работы системы, как часы швейцарского мастера.
Зачем это нужно? Как и в механике, где каждая шестерёнка имеет своё назначение, в операционной системе каждый пакет выполняет определённую функцию. Инвентаризация позволяет:
- Провести аудит безопасности и выявить уязвимые компоненты
- Подготовиться к миграции системы на новое оборудование
- Освободить дисковое пространство от ненужных механизмов
- Отладить проблемы зависимостей и конфликтов пакетов
Общий осмотр машинного зала — быстрые команды
Перед началом ремонта любого механизма, инженер проводит визуальный осмотр. В мире Ubuntu для этого существуют две основные команды:
apt list —installed
Это рекомендуемый способ для интерактивного просмотра установленных пакетов. Команда показывает имя пакета, версию и архитектуру.
apt list --installeddpkg -l
Более низкоуровневая команда, которая показывает состояние пакетов. Первые два символа обозначают статус:
ii— установлен нормальноrc— удалён, но конфигурационные файлы остались
dpkg -l
Поиск конкретной шестерёнки — проверка пакета
Когда вам нужен конкретный механизм, не стоит перебирать весь машинный зал. Используйте фильтрацию:
Поиск пакета через apt
apt list --installed | grep <имя_пакета>Поиск пакета через dpkg
dpkg -l | grep <имя_пакета>Проверка статуса конкретного пакета
dpkg -s <имя_пакета>Чертежи и автоматические приводы — ручная и автоматическая установка
В механике есть ручные механизмы и автоматические приводы. В Ubuntu пакеты также делятся на:
- Ручная установка (manual) — установлены пользователем
- Автоматическая установка (auto) — установлены как зависимости
Список пакетов, установленных вручную
apt-mark showmanualСписок пакетов, установленных автоматически
apt-mark showauto
Сторонние механизмы — Snap и Flatpak
Современные Ubuntu используют несколько систем распространения ПО. Пакеты Snap и Flatpak управляются отдельно от традиционных .deb пакетов APT/dpkg.
Отображает установленные snap-пакеты
snap listОтображает установленные Flatpak-приложения
flatpak list --appСоздание каталога механизмов — экспорт списков
Для миграции системы или резервного копирования необходимо экспортировать список установленных пакетов:
Экспорт всех пакетов и их состояний
dpkg --get-selections > all_packages.listЭкспорт только вручную установленных пакетов ( рекомендуется для миграции )
apt-mark showmanual > manual_packages.listДля восстановления на новой системе:
Импорт списка пакетов
sudo dpkg --set-selections < my_packages.list
sudo apt-get dselect-upgradeПросмотр судового журнала — логи установки
Каждый капитан ведёт судовой журнал, и ваша система не исключение. Журналы установки пакетов находятся в:
/var/log/dpkg.log— логи dpkg/var/log/apt/history.log— история APT
Просмотр последних установок
grep " install " /var/log/dpkg.log | tail -20Просмотр всех записей, включая архивные
zcat /var/log/apt/history.log.*.gz | grep " install "Мастерская инженера — практические сценарии
Сценарий 1: Как найти и удалить неиспользуемый пакет-зависимость
Найти автоматически установленные пакеты, которые больше не нужны
apt autoremove --dry-runУдалить ненужные зависимости
sudo apt autoremoveСценарий 2: Как восстановить набор ПО после переустановки системы
На старой системе
apt-mark showmanual > manual_packages.txtНа новой системе
sudo apt update
cat manual_packages.txt | xargs sudo apt install -yЗаключение
Как опытный механик выбирает нужный инструмент для каждой задачи — микрометр для точных измерений или ключ для грубой работы, так и системный администратор должен выбирать правильную команду для инвентаризации своих “паровых механизмов”. Помните: точность в работе с пакетами — залог стабильности всей системы.
⚙️ Машинное отделение ROADIT благодарит за прочтение.
Больше команд, шпаргалок и обзоров — на roadit.ru и в нашем Телеграф-канале. 📋 Все команды