apt-get в Ubuntu: установка и управление пакетами
Быстрые ссылки
- APT
- Поиск пакетов
- Добавление репозиториев
- Обновление источников
- Установка
- Удаление пакетов
- Обновление ПО
- Очистка
- Проверка установленных пакетов
- Секрет

Введение в APT
APT (Advanced Packaging Tool) — это система управления пакетами в Debian-производных, включая Ubuntu. Пакет — это отдельная единица ПО: возможный исполняемый файл, библиотеки, метаданные и скрипты установки. APT управляет зависимостями между пакетами, разрешает их и автоматизирует установку, удаление и обновление.
Кратко:
- Пакет — один программный компонент или библиотека.
- Репозиторий — хранилище пакетов, доступное по сети.
- apt-get/apt — интерфейсы для APT. Для системных изменений требуется привилегия суперпользователя (sudo).
Важно: в Ubuntu большинство команд APT нужно выполнять с sudo.
Поиск пакетов
Чтобы найти пакет по имени или описанию, используйте apt-cache search:
apt-cache search [search term 1] [search term 2] … [search term n]
Например, чтобы найти карточные игры:
apt-cache search solitaire
Если результатов много, отобразите их постранично:
apt-cache search [search term] | less
Команда less позволяет прокручивать вывод стрелками, PageUp/PageDown, пробелом и клавишей b; для выхода нажмите q.
Примечание: apt-cache ищет строки в названиях и описаниях пакетов.

Добавление репозиториев
Репозитории позволяют получать пакеты, которых нет в стандартных источниках Ubuntu. Ранние методы требовали правки /etc/apt/sources.list, но для PPA и популярных репозиториев удобнее использовать add-apt-repository.
Редактирование вручную:
sudo nano /etc/apt/sources.list
Добавление PPA:
sudo add-apt-repository ppa:tualatrix/ppa
После добавления репозитория обязательно обновите списки пакетов (см. ниже).

Обновление источников
После изменения репозиториев APT нужно обновить локальную базу данных пакетов:
sudo apt-get update
Это скачивает актуальные списки пакетов из всех подключённых репозиториев. Делайте это каждый раз после добавления нового репозитория и перед массовым обновлением системы.

Установка пакетов
Установка одного или нескольких пакетов:
sudo apt-get install [package name 1] [package name 2] … [package name n]
APT скачает пакет и необходимые зависимости. Часто вместе с основным пакетом предлагаются рекомендуемые или опциональные пакеты — вы увидите их в подсказке перед подтверждением.
Если требуется установить пакет по локальному .deb файлу, лучше использовать dpkg с последующей коррекцией зависимостей:
sudo dpkg -i package.deb sudo apt-get install -f
Совет: если вы не уверены, что установка вызовет побочные эффекты, сначала выполните симуляцию (см. раздел «Безопасная установка» ниже).

Удаление пакетов
Чтобы удалить пакет, но сохранить его конфигурацию (возможен откат):
sudo apt-get remove [package name]
Чтобы удалить вместе с конфигурационными файлами и директориями, используйте –purge:
sudo apt-get remove –purge [package name]
Чтобы автоматически удалить пакеты, которые стали неиспользуемыми после удаления других пакетов:
sudo apt-get autoremove
autoremove полезен для очистки неиспользуемых библиотек и зависимостей.

Обновление программного обеспечения
Обновление установленных пакетов происходит двумя основными способами.
Мягкое обновление (замена версий без установки/удаления новых имен пакетов):
sudo apt-get upgrade
Если указать конкретные пакеты, будут обновлены только они:
sudo apt-get upgrade [package name]
Если новая версия пакета требует установки или удаления других пакетов (изменение зависимостей), используйте dist-upgrade, который более агрессивен в решении зависимостей:
sudo apt-get dist-upgrade
dist-upgrade может устанавливать новые пакеты и удалять старые, чтобы удовлетворить зависимости.
Можно предварительно выполнить симуляцию, чтобы увидеть, что будет сделано:
sudo apt-get –s upgrade
Используйте симуляцию перед критическими обновлениями (например, для серверов с PHP, базами данных, почтовыми серверами).

Очистка кэша и освобождение места
APT кеширует скачанные .deb файлы в /var/cache/apt/archives. Для очистки кеша используйте:
sudo apt-get clean
Если хотите удалить только старые файлы пакетов, оставив текущие версии в кеше:
sudo apt-get autoclean
clean удалит весь кэш, а autoclean — только устаревшие версии.
Проверка установленных пакетов
Просмотреть все установленные пакеты:
sudo dpkg –list
Постраничный вывод:
sudo dpkg –list | less
Поиск пакета по имени/описанию:
dpkg –list | grep [search term]
Короткий формат поиска (обращайте внимание на букву L):
dpkg –l ‘search term’

Секрет — пасхалка
APT имеет пасхалку:
sudo apt-get moo
Попробуйте и получите свою суперкорову!
Разница между apt, apt-get и aptitude
- apt-get — более старый и стабильный интерфейс, предназначен для скриптов и совместимости.
- apt — более удобный, объединяет команды apt-get и apt-cache и даёт более читабельный вывод для интерактивного использования.
- aptitude — альтернативный менеджер пакетов с интерфейсом ncurses и собственной системой разрешения зависимостей; иногда лучше подходит для сложных конфликтов.
Примеры:
sudo apt update sudo apt install package
apt выводит прогресс и цвета по умолчанию и часто удобнее на рабочей станции.
Альтернативы: Snap и Flatpak
Snap и Flatpak — форматы для изолированных приложений (контейнеризация). Они независимы от системы пакетов и полезны, если нужного пакета нет в репозиториях или нужна более свежая версия.
Плюсы Snap/Flatpak:
- Изоляция и совместимость библиотек
- Часто новее версии приложений
Минусы:
- Больше места на диске
- Отдельное управление обновлениями
Используйте их, когда пакет недоступен в APT или когда требуется sandbox.
Когда apt-get может не подойти
- Конфликты зависимостей, которые требуют ручного вмешательства.
- Пакеты, отсутствующие в репозиториях — тогда нужны .deb, snap, flatpak или сборка из исходников.
- Случаи, когда требуется более тонкое разрешение зависимостей — aptitude может помочь.
Пример неудачи: обновление ядра на критическом сервере без тестовой среды может привести к несовместимости модулей.
Практическая методология безопасной установки
Мини-методология для ответственной установки или обновления пакетов:
- Обновите индексы: sudo apt-get update
- Проведите симуляцию (если сомневаетесь): sudo apt-get –s upgrade
- Установите пакет: sudo apt-get install package
- Проверяйте конфигурационные файлы и журналы: journalctl, /var/log/apt/
- При проблемах верните пакет: sudo apt-get remove –purge package или восстановите из резервной копии.
Критерии приёмки
- Программа запускается без ошибок.
- Зависимости установлены корректно.
- Нет критичных ошибок в системных логах.
Лучшие практики и безопасность
- Всегда читайте подсказки apt при установке/удалении.
- Не добавляйте ненадёжные репозитории. Используйте репозитории, которые вы проверили.
- Подписанные репозитории повышают доверие — apt проверяет подписи пакетов.
- На серверах выполняйте обновления в окне обслуживания и имейте резервные копии.
Риски и смягчения
- Риск: конфликт библиотек. Смягчение: симуляция, тестовая среда, aptitude.
- Риск: злонамеренный репозиторий. Смягчение: проверка GPG-ключей и репутации.
Ролевые чек-листы
Администратор сервера:
- Обновить индексы
- Выполнить симуляцию обновления
- Проверить зависимости критичных сервисов
- Выполнить обновление и перезапустить сервисы
- Проверить логи и мониторинг
Пользователь рабочего стола:
- Поиск пакета через apt-cache
- Добавление PPA при необходимости
- Установка и тестирование программы
- Очистка кеша при недостатке места
Разработчик:
- Устанавливать локальные версии через apt или .deb
- Использовать virtualenv/контейнеры для зависимостей
- Документировать версии пакетов для проекта
Быстрый список команд (cheat sheet)
- sudo apt-get update — обновить списки пакетов
- sudo apt-get upgrade — обновить установленные пакеты
- sudo apt-get dist-upgrade — обновление с решением зависимостей
- sudo apt-get install package — установить пакет
- sudo apt-get remove package — удалить пакет
- sudo apt-get remove –purge package — удалить и очистить конфигурацию
- sudo apt-get autoremove — удалить неиспользуемые пакеты
- sudo apt-get clean — очистить весь кэш
- sudo apt-get autoclean — удалить старые версии из кэша
- apt-cache search term — поиск в репозиториях
- dpkg –list — список установленных пакетов
Отладка и распространённые ошибки
Проблема: «Не удалось разрешить зависимости» Решение: попробуйте sudo apt-get -f install, затем sudo apt-get update и sudo apt-get upgrade. Если не поможет — aptitude может предложить альтернативы.
Проблема: «Проблемы с репозиторием (404 / не найдено)» Решение: проверьте /etc/apt/sources.list и файлы в /etc/apt/sources.list.d/. Убедитесь, что вы добавили репозиторий, подходящий для вашей версии Ubuntu.
Проблема: «Пакет находится в удерживаемом состоянии (held back)» Решение: sudo apt-get dist-upgrade или явная установка нужной версии. Проверьте конфликты версий.
Проблема: «Недостаточно места» Решение: очистите кэш (sudo apt-get clean), удалите ненужные пакеты (sudo apt-get autoremove), проверьте /var/lib/apt/archives.
Сценарий отката (rollback)
- Если у вас есть резервная копия системы — восстановите её.
- Если резервной копии нет, удалите проблемный пакет и установите предыдущую версию из кэша: sudo dpkg -i /var/cache/apt/archives/package_version.deb
- Зафиксируйте пакет, чтобы он не обновлялся: sudo apt-mark hold package
Совместимость и миграция
При переходе между версиями Ubuntu:
- Используйте официальную документацию по обновлению.
- На серверах тестируйте обновление на стэндах.
- Не смешивайте пакеты из разных релизов в sources.list — это может привести к «dependency hell».
Примеры сценариев
Установка nginx и проверка статуса:
sudo apt-get update sudo apt-get install nginx sudo systemctl status nginx
Очистка после сборки пакета:
sudo apt-get remove –purge build-essential sudo apt-get autoremove sudo apt-get clean
Ментальные модели при работе с пакетами
- Индекс → скачивание → установка. Всегда обновляйте индекс перед установкой.
- Зависимость — это контракт: пакет A требует пакет B. APT решает эти контракты автоматически.
- Симуляция — репетиция перед реальным действием.
Таблица сравнения инструментов
| Инструмент | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| apt-get | Скрипты, совместимость | Стабилен, предсказуем | Менее удобен в интерактиве |
| apt | Рабочая станция | Удобный вывод, цвета | Меньше совместимости в скриптах |
| aptitude | Сложные конфликты | Сильное разрешение зависимостей | Может предлагать неожиданные решения |
| snap/flatpak | Новые/изолированные приложения | Стабильность среды | Занимают больше места |
Ресурсы для дальнейшего изучения
- man apt-get
- man apt
- man dpkg
- Официальная документация Ubuntu
Управление пакетами через командную строку делает систему легче в поддержке, быстрее в реакции и удобнее для автоматизации. Если вы часто работаете с удалёнными серверами или предпочитаете клавиатуру мыши — освоение apt/apt-get значительно ускорит поток работы. Для практики попробуйте установить простую утилиту, прочитать её man-страницу и затем удалить её, наблюдая за зависимостями и кешем.
Extras: проверяйте логи в /var/log/apt/ и используйте стандартные механизмы резервного копирования перед критическими обновлениями.
Похожие материалы
Освободите место на Mac с macOS Sierra
Устранение дрейфа стика DualSense на PS5
Управление паролями в Google Chrome
AirPlay в Mountain Lion: настройка и советы
Ускорение Windows 11 для игр — простые шаги