apt против apt‑get: что изменилось и как пользоваться

Linux постоянно развивается. Часть изменений происходит «за кулисами» — в ядре и библиотеках. Но иногда пользователям приходится привыкать к новому способу взаимодействия с системой. Появление команды apt — именно такой случай, хотя и менее болезненный, чем многие другие изменения.
Вместо радикальной замены, Debian-подобные системы (Ubuntu, Linux Mint, Raspbian и др.) ввели apt как более простой и унифицированный интерфейс поверх существующих инструментов apt-get и apt-cache. В этой статье мы объясним, что изменилось, зачем это сделано и как это использовать в реальных сценариях.
Что такое apt и чем он отличается
apt — это командная утилита для управления пакетами, которая сочетает в себе наиболее часто используемые возможности apt-get и apt-cache. Цели и преимущества:
- Упрощение: короче команды, меньше дублирующихся опций.
- Улучшённый UX: прогресс-бар при установке/удалении, более понятные сообщения.
- Новые полезные команды и параметры (full-upgrade, list с несколькими режимами, –no-upgrade и –only-upgrade и др.).
Важно: apt не ломает совместимость. Сценарии, которые работали с apt-get, продолжают работать, но apt даёт более удобную и современную оболочку для повседневных задач.
Когда использовать apt, а когда apt-get
Правило простое:
- Для интерактивной работы в терминале используйте apt. Он удобнее и информативнее.
- Для сценариев автоматизации и скриптов (особенно где важна стабильность вывода) продолжайте использовать apt-get, если вы полагаетесь на строгий и неизменный формат вывода.
Почему? apt ориентирован на человека — прогресс-бар, упрощённые сообщения. apt-get исторически даёт более предсказуемый формат, который может быть важен для парсинга скриптами.
Краткая шпаргалка по эквивалентам
- apt-get update → sudo apt update
- apt-get upgrade → sudo apt upgrade
- apt-get install
→ sudo apt install - apt-get remove
→ sudo apt remove - apt-get purge
→ sudo apt purge - apt-get autoremove → sudo apt autoremove
Обновление: full-upgrade против upgrade
Команда apt добавила удобную команду full-upgrade:
sudo apt full-upgradeРазница:
- sudo apt upgrade — обновляет установленные пакеты, но не удаляет пакеты, если это требуется для решения конфликтов версий.
- sudo apt full-upgrade — обновляет пакеты и при необходимости удаляет устаревшие или конфликтующие пакеты, чтобы завершить обновление.
Когда использовать full-upgrade: если вы хотите чтобы система применила все доступные обновления, даже если для этого придётся удалить некоторые пакеты. Если вы хотите более консервативный подход — используйте обычный upgrade.
Установка нескольких пакетов одной командой
apt позволяет перечислить несколько пакетов для установки в одной строке:
sudo apt install package1 package2 package3Если пакет уже установлен, apt проверит, доступна ли более новая версия, и предложит её установить. Это удобно для сценариев быстрой настройки новой машины.
Установка без обновления и только обновление
Иногда нужно переустановить пакет без одновременного обновления до новой версии или наоборот — загрузить новую версию, но не устанавливать её. apt предоставляет опции для таких случаев:
Переустановить пакет без обновления его до более новой версии:
sudo apt install packagename --no-upgradeЗагрузить обновление для пакета, не устанавливая его (редкий сценарий):
sudo apt install packagename --only-upgradeПримечание: –only-upgrade полезна, если вы хотите подготовить кэш обновлений заранее.
Установка конкретной версии пакета
Если новая версия приложения нарушает нужную вам функциональность, можно установить конкретную версию:
sudo apt install packagename=1.2.3-1ubuntu0.1Где версия пакета берётся из списка доступных версий (apt list –all-versions или apt-cache policy packagename). Учтите, что последующие общесистемные обновления могут заменить эту версию, если не зафиксировать её отдельными мерами (например, держать пакет заблокированным через apt-mark hold).
Просмотр списков пакетов
Команда apt list умеет выводить пакеты по разным условиям.
- Пакеты, доступные для обновления:
apt list --upgradeable- Установленные пакеты:
apt list --installed- Все доступные версии пакетов для текущих репозиториев (обратите внимание на количество дефисов):
apt list --all-versions(внимание: правильный вариант — два дефиса перед all-versions; в документации иногда встречаются опечатки с большим количеством дефисов)
Удаление: remove vs purge
- sudo apt remove packagename — удаляет бинарные файлы пакета, оставляя конфигурационные файлы в системе (они могут понадобиться при переустановке).
- sudo apt purge packagename — удаляет пакет и его конфигурационные файлы полностью.
Обычно используйте purge, если хотите полностью избавиться от следов программы. Если вы планируете возможное возвращение пакета и хотите сохранить настройки — используйте remove.
Очистка: autoremove и другие команды
apt упрощает очистку с помощью одной унифицированной команды:
sudo apt autoremoveЭта команда удаляет пакеты, которые были установлены автоматически как зависимости, но больше не требуются ни одной установленной программой. Она помогает вернуть дисковое пространство и поддерживать систему в чистоте.
Раньше в apt-get использовали комбинацию clean и autoclean для управления локальным кэшем пакетов. Эти команды по-прежнему доступны, но autoremove решает задачу удаления ненужных зависимостей наиболее часто применяемым способом.
Дополнительные возможности apt
apt предоставляет несколько удобных улучшений по сравнению с классикой:
- Информативный прогресс-бар при установке и удалении пакетов.
- Объединение распространённых команд apt-cache и apt-get.
- Удобный вывод списков с фильтрацией.
- Дополнительные параметры управления версиями пакетов.
Тем не менее, для автоматизированных скриптов и CI/CD иногда остаётся разумным использовать apt-get ради стабильного машинного вывода.
Сценарии и советы по переходу
- Личное рабочее окружение (интерактивный терминал): переходите на apt. Он быстрее печатать и удобнее читать.
- Скрипты и автоматизация: оставляйте apt-get, если ваш скрипт парсит вывод утилиты. Если вы контролируете формат вывода и он не критичен, можно перейти на apt.
- Серверы с критическими службами: тестируйте full-upgrade на стендах, прежде чем применять в проде; некоторые обновления требуют удаления пакетов.
Ментальные модели и чек-листы
Ментальная модель: apt — это удобная «рабочая лошадка» для людей, apt-get — «инструмент для машин и сценариев».
Чек-лист системного администратора перед крупным обновлением:
- Сделать бэкап конфигураций сервисов.
- Проверить доступность репозиториев и свободное место на диске.
- На тестовом стенде выполнить sudo apt update && sudo apt full-upgrade.
- Проверить логи и запустить smoke-тесты сервисов.
- Выполнить обновление на продакшене в окне обслуживания.
Роль-ориентированные чек-листы
- Для разработчика: использовать sudo apt install для быстрой установки dev-зависимостей; держать пакеты, критичные для сборки, зафиксированными.
- Для администратора: использовать sudo apt full-upgrade на тестах перед продакшеном; документировать удаляемые пакеты.
- Для новичка: начинать с sudo apt update && sudo apt upgrade, изучить apt list –installed.
Решение «когда удалить, когда оставить» — диаграмма
flowchart TD
A[Нужно обновление пакетов?] --> B{Есть критичные зависимости?}
B -- Да --> C[Тестируем на стенде: sudo apt full-upgrade]
B -- Нет --> D[Используем sudo apt upgrade]
C --> E{Все сервисы работают?}
E -- Да --> F[Внедряем на прод]
E -- Нет --> G[Откат/исследование причин]
D --> F
G --> H[Рассмотреть pinned-version или rollback]Критерии приёмки
- Команды apt выполняют те же действия, что и эквивалентные apt-get, для интерактивного использования.
- Скрипты, которые полагались на точный формат вывода apt-get, продолжают работать, если не были изменены.
- После миграции пользователи получают более читабельный вывод и прогресс-бар.
Тест-кейсы и приёмка изменений
- Проверить, что sudo apt install пакет устанавливает тот же набор файлов, что и apt-get install.
- Проверить поведение sudo apt full-upgrade при наличии пакетов, требующих удаления.
- Проверить, что sudo apt autoremove очищает ненужные зависимости без удаления требуемых пакетов.
Когда apt может не подойти (контрпримеры)
- Скрипты, которые парсят вывод apt, могут сломаться из-за более «человеческого» формата сообщений и прогресс-бара.
- Узкоспециализированные команды apt-get или apt-cache всё ещё могут предоставлять дополнительные опции для сложных сценариев отладки.
Практическая шпаргалка: часто используемые команды
# Обновить информацию о пакетах
sudo apt update
# Обновить установленные пакеты (консервативно)
sudo apt upgrade
# Обновить и при необходимости удалить конфликтующие пакеты
sudo apt full-upgrade
# Установить пакет(ы)
sudo apt install package1 package2
# Установить конкретную версию пакета
sudo apt install packagename=1.2.3-1
# Переустановить без апгрейда
sudo apt install packagename --no-upgrade
# Удалить пакет (оставляет конфиг)
sudo apt remove packagename
# Удалить пакет и конфигурацию
sudo apt purge packagename
# Удалить неиспользуемые зависимости
sudo apt autoremove
# Показать установленные пакеты
apt list --installed
# Показать пакеты, доступные для обновления
apt list --upgradeableСопоставление совместимости и миграции
- Версии Debian/Ubuntu выпускают apt в репозитории после тщательного тестирования. Если у вас стабильная LTS‑сборка — установка apt уже доступна из стандартных репозиториев.
- Миграция не требует удаления apt-get; обе команды могут сосуществовать.
- Для автоматизации: по возможности продолжайте использовать apt-get в скриптах, пока не убедитесь, что формат вывода apt приемлем.
1‑строчная глоссарий
- apt — современная команда для управления пакетами, объединяющая часто используемые функции apt-get и apt-cache.
- apt-get — классическая наборная утилита для управления пакетами; полезна для скриптов.
- apt-cache — инструмент для запроса информации о пакетах.
- full-upgrade — команда apt для обновления с удалением конфликтующих пакетов.
- autoremove — удаление автоматически установленных, но неиспользуемых зависимостей.
Заключение
apt — это шаг к более удобному и последовательному опыту управления пакетами в Debian-подобных системах. Он не вычёркивает старые инструменты, но делает повседневные операции быстрее и понятнее. При этом нужно сохранять осторожность в автоматизации: там, где важен стабильный формат вывода, apt-get остаётся предпочтительным.
Если вы ещё не пробовали apt — начните с sudo apt update && sudo apt upgrade на тестовой машине. А затем решите, какой инструмент требованиям вашего окружения подходит больше.
Image Credits: Brian A Jackson/Shutterstock
Похожие материалы
Google Assistant для Home Assistant — шаг за шагом
Как аннотировать презентации в Google Slides
Как перенести номер в Google Voice
Как подключить гарнитуру к устройству с одним аудиоразъёмом
PowerPoint не может найти Word — исправление ошибки