Гид по технологиям

apt против apt-get: когда и как переходить на новый инструмент

6 min read Linux Обновлено 28 Apr 2026
apt против apt-get: руководство по переходу
apt против apt-get: руководство по переходу

Терминал Linux с командой apt на экране

Почему появился apt

Linux постоянно развивается. Многие изменения скрыты в ядре и библиотечных обновлениях, но некоторые влияют на повседневную работу пользователя. Команда apt появилась не для радикальной замены apt-get, а чтобы упростить и унифицировать инструменты работы с APT — Advanced Package Tool.

Раньше для управления пакетами использовались разделённые наборы команд: apt-get для операций с пакетами и apt-cache для получения информации. Со временем коллекция команд выросла и стала менее однородной. apt объединяет наиболее часто применяемые опции, сокращая дублирование и улучшая удобство работы.

Ключевая идея: поддерживать совместимость (apt-get остаётся), но предоставить более компактный, удобный интерфейс для большинства задач.

Что нового в apt по сравнению с apt-get

  • Краткий синтаксис: многие привычные команды стали короче (удалён суффикс “-get”).
  • Объединение команд apt-get и apt-cache в одну точку входа.
  • Улучшения UX: прогресс при установке/удалении, понятные сообщения.
  • Новые команды и более гибкие опции: full-upgrade, list –upgradeable, –only-upgrade и др.

Ниже — конкретные примеры и практические рекомендации.

Основные соответствия команд

В большинстве случаев вы можете заменить:

apt-get install [packagename]

на

apt install [packagename]

То же самое работает для update, upgrade, remove и др. Однако apt предлагает дополнительные возможности и опции, которые полезно знать.

Полное обновление системы

Команды update и upgrade остаются:

  • sudo apt update — обновляет локальную базу пакетов из репозиториев.
  • sudo apt upgrade — обновляет установленные пакеты без удаления других пакетов.

Новая команда:

sudo apt full-upgrade

full-upgrade обновляет пакеты и при необходимости удаляет устаревшие или конфликтующие пакеты, чтобы завершить обновление. Это поведение похоже на сочетание upgrade + управление зависимостями, которое раньше приходилось выполнять вручную с apt-get.

Прогресс обновления пакетов в терминале

Когда использовать full-upgrade:

  • Если обновление требует удаления пакетов, которые конфликтуют с новыми версиями.
  • При переходе между релизами, когда зависимостям нужно освободить место.

Когда не использовать:

  • На критичных продакшн-серверах без резервного копирования и проверки зависимостей. В таких случаях выполняйте плановое обновление с тестированием.

Одновременная установка нескольких пакетов

apt позволяет устанавливать несколько пакетов одной командой:

sudo apt install package1 package2 package3

Если пакет уже установлен, apt проверит наличие более новой версии и при необходимости обновит его. Это экономит время и уменьшает количество отдельных команд.

Установка без апгрейда существующего пакета

Иногда нужно переустановить пакет или установить зависимость без обновления самой установленной версии. Для этого есть опция –no-upgrade:

sudo apt install packagename --no-upgrade

Противоположная задача — загрузить обновлённую версию пакета в локальный кэш, но не устанавливать её:

sudo apt install packagename --only-upgrade

–only-upgrade скачивает обновления для пакета, даже если он ещё не установлен, но не устанавливает его. Это редкая, однако иногда полезная операция при подготовке узлов к развертыванию.

Изображение команды apt без обновления пакета

Установка конкретной версии пакета

Если нужна строго определённая версия (например, последняя версия сломала нужную вам функциональность), указывайте версию явно:

sudo apt install packagename=version_number

Важно: последующие глобальные обновления могут переустановить пакет в более свежей версии. Чтобы удерживать конкретную версию, придётся блокировать пакет (см. раздел “Советы по фиксации версии” ниже).

Просмотр списков пакетов

apt добавляет удобные варианты для просмотра списков:

  • Список пакетов, доступных для обновления:
apt list --upgradeable
  • Список установленных пакетов:
apt list --installed
  • Список всех версий пакетов (внимание на количество дефисов):
apt list ----all-versions

(Обратите внимание: в этом ключе используются четыре дефиса.)

Команда apt list выводит состояние пакетов

Удаление и очистка пакетов

Обычное удаление пакета:

sudo apt remove packagename

Этот вариант удаляет исполняемые файлы, но часто оставляет конфигурационные файлы пользователя и пакета.

Полная очистка пакета:

sudo apt purge packagename

Purge удаляет как бинарные файлы, так и конфигурацию, оставляя систему чище.

Для удаления автоматически установленных, но уже не нужных зависимостей используйте:

sudo apt autoremove

Эта команда освобождает место на диске, удаляя пакеты, установленные как зависимости и больше не связанные с установленными приложениями.

Команда autoremove освобождает дисковое пространство

Полезный набор команд (cheat sheet)

Ниже — компактная шпаргалка по наиболее полезным командам apt:

sudo apt update                     # Обновить списки пакетов
sudo apt upgrade                    # Обновить установленные пакеты (без удаления)
sudo apt full-upgrade               # Обновить, при необходимости удалить конфликтующие пакеты
sudo apt install pkg                # Установить пакет
sudo apt install pkg1 pkg2          # Установить несколько пакетов
sudo apt install pkg=1.2.3          # Установить конкретную версию
sudo apt install pkg --no-upgrade   # Установить пакет, не обновляя уже установленные
sudo apt install pkg --only-upgrade # Скачать обновление, не устанавливая пакет
sudo apt remove pkg                 # Удалить пакет (оставляет конфиги)
sudo apt purge pkg                  # Удалить пакет и конфигурацию
sudo apt autoremove                 # Удалить неиспользуемые зависимости
apt list --installed                # Список установленных пакетов
apt list --upgradeable              # Список пакетов для обновления
apt list ----all-versions           # Список всех доступных версий

Сохраните этот блок в заметках — он пригодится при миграции и обслуживании.

Советы по фиксации версии и удержанию пакетов

Если нужно удержать пакет на заданной версии, можно воспользоваться apt-mark:

sudo apt-mark hold packagename      # Заблокировать пакет от автоматического обновления
sudo apt-mark unhold packagename    # Разблокировать пакет

Это полезно на серверах, где обновление критичного компонента может нарушить работу сервисов.

Когда не стоит переходить на apt

  • В автоматизированных скриптах и CI/CD, где ожидается стабильное поведение старых опций apt-get — пока не протестируйте сценарии. apt совместим в основном, но формат вывода и поведение некоторых опций слегка отличаются.
  • На системах с крайне строгими требованиями к выводу для парсинга: apt выводит прогресс и человекочитаемые строки, что может мешать простым скриптам. В таких случаях можно продолжить использовать apt-get или адаптировать парсинг.

План миграции для администратора

  1. Инвентаризация: соберите скрипты и роли, которые вызывают apt-get/apt-cache.
  2. Тестирование: на тестовой машине замените apt-get на apt и прогоните сценарии.
  3. Коррекция: скорректируйте парсинг вывода и обработку ошибок (apt возвращает коды выхода аналогично).
  4. Документация: обновите internal runbook и playbooks (Ansible/Puppet/Chef).
  5. Постепенный переход: сначала перейти на apt в интерактивных сценариях, затем — в автоматизации.

Чеклист по ролям

  • Системный администратор:

    • Проверить совместимость скриптов
    • Протестировать full-upgrade на staging
    • Добавить резервные копии перед массовыми обновлениями
  • Разработчик/инженер DevOps:

    • Обновить CI-пайплайны
    • Убедиться в корректности парсинга вывода
    • Использовать apt-mark для удержания нужных версий
  • Обычный пользователь:

    • Пользоваться apt для повседневных задач (update, install, remove)
    • Использовать autoremove для очистки диска

Частые ошибки и как их избежать

  • Ошибка: запуск full-upgrade без проверки зависимостей на сервере в продакшне. Рекомендация: сначала протестируйте на staging и читайте список удаляемых пакетов перед подтверждением.

  • Ошибка: парсинг вывода apt как текста, когда нужен машинный формат. Рекомендация: для автоматизации используйте apt-get или apt-cache с опциями, или используйте библиотеки управления пакетами (libapt, python-apt).

  • Ошибка: ожидание точной функциональной замены всех опций apt-get. Рекомендация: проверьте конкретные опции в man apt и держите резервы для старых команд.

Набор решений и альтернатив

  • Для скриптов критичной автоматизации можно временно оставлять apt-get; предварительно протестируйте переход.
  • Для сложного управления пакетами и зависимостями используйте инструменты конфигурационного менеджмента (Ansible, Puppet) и lock-файлы.

Краткая методология принятия решения

  1. Оцените влияние изменений на процессы.
  2. Выполните тестовую миграцию в изолированной среде.
  3. Обновите документацию и автоматизацию.
  4. Мониторьте систему после перехода и фиксируйте откаты.

Небольшой глоссарий

  • APT: Advanced Package Tool — система управления пакетами в Debian-подобных дистрибутивах.
  • apt-get, apt-cache: старые утилиты APT для установки и запроса информации.
  • apt: современная утилита-обёртка с удобным интерфейсом для повседневных задач.

Визуальная подсказка для принятия решения

flowchart TD
  A[Нужна простая интерактивная работа с пакетами?] -->|Да| B[Используйте apt]
  A -->|Нет, автоматизация/CI| C[Требуется стабильный вывод?]
  C -->|Да| D[Оставьте apt-get или адаптируйте скрипты]
  C -->|Нет| B
  B --> E[Тестирование на staging]
  D --> E
  E --> F[Постепенный переход и документация]

Часто задаваемые вопросы

Надо ли полностью отказываться от apt-get?

Нет. apt-get остаётся доступным и пригоден для сценариев, где важно детерминированное поведение и совместимость со старыми скриптами.

Отличается ли поведение команд apt и apt-get по кодам возврата?

В большинстве случаев коды возврата совместимы, но формат вывода и интерактивные подсказки apt могут отличаться.

Можно ли блокировать пакет, чтобы apt не обновлял его?

Да: sudo apt-mark hold packagename. Для снятия блокировки используйте unhold.

Итог и рекомендации по использованию

  • Для повседневной, интерактивной работы используйте apt: он быстрее, понятнее и удобнее.
  • Для автоматизированных скриптов и сценариев с жёсткими требованиями к выводу тестируйте переход или временно сохраняйте apt-get.
  • Всегда выполняйте резервное копирование и тесты на staging перед массовыми обновлениями.

Короткое резюме: apt упрощает жизнь, но не заставляет вас отказываться от проверенных инструментов — переходайте поэтапно и с тестированием.

Источник изображений: Brian A Jackson/Shutterstock

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро