Введение / Зачем это нужно
APT (Advanced Package Tool) — это стандартный менеджер пакетов для дистрибутивов на базе Debian (включая Ubuntu, Linux Mint и другие). Он упрощает установку, обновление и удаление программного обеспечения, автоматически разрешая зависимости между пакетами. В этом руководстве вы освоите базовые команды APT, которые покрывают 90% повседневных задач. После прохождения вы сможете уверенно управлять пакетами через терминал, не полагаясь на графические утилиты.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть доступ к терминалу (Ctrl+Alt+T или через меню приложений).
- Вы имеете права суперпользователя (можете использовать
sudo). Большинство команд APT требуют повышенных привилегий. - Система подключена к интернету для загрузки пакетов и обновления списков репозиториев.
- APT уже установлен (по умолчанию в Debian/Ubuntu). Проверить версию:
apt --version
Основные команды APT
Обновление списка пакетов: apt update
Перед установкой или обновлением пакетов всегда синхронизируйте локальный кэш с репозиториями. Это гарантирует, что вы получите последние версии и информацию о новых пакетах.
sudo apt update
Что происходит:
APT загружает списки пакетов из источников, указанных в /etc/apt/sources.list и /etc/apt/sources.list.d/. Без этого шага система не будет знать о новых версиях или пакетах.
Пример вывода:
Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease
...
Reading package lists... Done
💡 Совет: Выполняйте
apt updateперед любыми операциями установки/обновления. Для автоматизации добавьте в cron раз в день.
Установка пакетов: apt install
Установка одного или нескольких пакетов:
sudo apt install <имя_пакета1> <имя_пакета2>
Пример: установка текстового редактора nano и утилиты curl:
sudo apt install nano curl
APT автоматически:
- Скачает пакеты и все необходимые зависимости.
- Запросит подтверждение (нажмите
YилиEnter). - Установит пакеты в систему.
Установка конкретной версии (если доступно несколько):
sudo apt install <имя_пакета>=<версия>
Обновление пакетов: apt upgrade и apt full-upgrade
apt upgrade— обновляет все установленные пакеты до последних доступных версий, не удаляя старые пакеты и не устанавливая новые зависимости. Безопасно, но может оставить устаревшие зависимости.apt full-upgrade(илиapt-get dist-upgrade) — более агрессивно: удаляет устаревшие пакеты и устанавливает новые зависимости, если это необходимо для обновления. Используйте, еслиupgradeне может завершить обновление.
Пример:
sudo apt upgrade
Система покажет список пакетов для обновления и запросит подтверждение.
⚠️ Важно: Всегда сначала запускайте
apt update, иначеupgradeне найдёт новых версий.
Удаление пакетов: apt remove и apt purge
apt remove <пакет>— удаляет бинарные файлы пакета, но сохраняет конфигурационные файлы (в/etc/и elsewhere). Полезно, если планируете переустановку.apt purge <пакет>— полное удаление, включая конфигурационные файлы. Аналогapt remove+ очистка настроек.
Пример удаления nano:
sudo apt remove nano
Для полного удаления:
sudo apt purge nano
Удаление пакетов, которые были установлены как зависимости, но больше не нужны:
sudo apt autoremove
Эта команда удаляет "осиротевшие" пакеты (те, которые не имеют обратных зависимостей).
Поиск пакетов: apt search
Ищет пакеты в локальном кэше (после apt update) по ключевому слову:
apt search <ключевое_слово>
Пример: найти пакеты, связанные с Python:
apt search python3
Вывод включает имя пакета и краткое описание.
Поиск точного имени пакета (если известна часть):
apt list | grep <часть_имени>
Просмотр информации о пакете: apt show
Показывает детальную информацию об установленном или доступном пакете: версию, размер, зависимости, описание, домашнюю страницу.
apt show <имя_пакета>
Пример:
apt show curl
Очистка кэша: apt clean и apt autoclean
APT сохраняет скачанные .deb-файлы в кэше (обычно /var/cache/apt/archives/). Со временем это может занять гигабайты.
sudo apt clean— удаляет все файлы кэша.sudo apt autoclean— удаляет только устаревшие файлы (те, для которых уже нет соответствующей версии в репозиториях).
Рекомендация: периодически выполняйте apt autoclean для экономии места.
Дополнительные полезные команды
- Список установленных пакетов:
apt list --installed
Можно фильтровать черезgrep:apt list --installed | grep python. - Проверка обновляемости конкретного пакета:
apt list --upgradable | grep <пакет> - Просмотр источников репозиториев:
cat /etc/apt/sources.list ls /etc/apt/sources.list.d/
Редактирование:sudo nano /etc/apt/sources.list(осторожно!).
Проверка результата
После выполнения команд убедитесь, что операция прошла успешно:
- Код возврата: В терминале
echo $?должен показать0(успех). Любое ненулевое значение указывает на ошибку. - Сообщения об ошибке: Читайте вывод APT. Частые ошибки:
E: Unable to locate package <пакет>— пакет не найден. Проверьте название или добавьте репозиторий.E: Could not open lock file— конфликт процессов (см. раздел "Возможные проблемы").
- Проверка установки пакета:
илиdpkg -l | grep <имя_пакета>apt list --installed | grep <имя_пакета> - Запуск пакета: Если это исполняемый файл, попробуйте запустить его (например,
nano --version).
Возможные проблемы
Ошибка доступа (Permission denied)
Симптом: E: Could not open lock file /var/lib/dpkg/lock-frontend или E: Unable to acquire the dpkg frontend lock.
Причина: Другой процесс (например, Software Center, другой терминал с apt) уже использует менеджер пакетов.
Решение:
- Подождите 1-2 минуты, если другой процесс завершится.
- Найдите и завершите процесс:
sudo killall apt apt-get - В крайнем случае перезагрузите систему.
Пакет не найден
Симптом: E: Unable to locate package <имя>.
Причина:
- Неправильное имя пакета.
- Репозиторий, содержащий пакет, не добавлен или не активирован.
- Вы не выполнили
apt updateпосле добавления репозитория. Решение: - Проверьте название через
apt search <часть_имени>. - Проверьте репозитории:
cat /etc/apt/sources.list. - Добавьте репозиторий (например, для Universe в Ubuntu:
sudo add-apt-repository universe) и выполнитеsudo apt update.
Недостаточно места на диске
Симптом: E: You don't have enough free space in /var/cache/apt/archives/.
Решение:
- Очистите кэш:
sudo apt clean. - Удалите старые ядра или ненужные файлы.
- Увеличьте раздел (если возможно).
Сетевые ошибки при обновлении
Симптом: Failed to fetch http://... или Could not resolve.
Решение:
- Проверьте интернет-соединение.
- Проверьте доступность репозитория (возможно, временная проблема на стороне сервера).
- Если используете прокси, настройте APT для работы с ним (файл
/etc/apt/apt.conf.d/proxy).
Пакет завис в состоянии "не полностью установлен"
Симптом: При попытке установки/удаления пакета APT сообщает о "неконсистентном" состоянии. Решение:
sudo apt --fix-broken install
Эта команда попытается исправить зависимости и завершить прерванные операции.
Разные версии APT в скриптах
Примечание: Если пишете скрипты, используйте apt-get и apt-cache вместо apt, так как их вывод более стабилен и предназначен для машинной обработки. Для интерактивного использования apt удобнее благодаря цветному выводу и прогресс-бару.