Пакетный менеджер APT
Advanced Packaging Tool – набор утилит для управления программными пакетами в операционных системах основанных на Debian. APT предоставляет дружественную надстройку над DPKG и позволяет:
устанавливать, удалять и обновлять пакеты
решать зависимости
искать пакеты по заданным критериям
просматривать подробную информацию о пакете
манипулировать ключами от репозиториев
APT является одной из базовых программ и включена в состав Ubuntu.
Настройки
Все файлы настроек APT хранятся в директории /etc/apt.
apt.conf
/etc/apt/apt.conf – основной файл настроек, используемый всеми инструментами из состава APT. Описание всех возможных настроек и опций можно прочитать в документации к нему:
man apt.conf
apt.conf.d
Директория содержащая в себе файлы конфигурации, аналогичные по синтаксису apt.conf. При помощи этой директории можно быстро и удобно манипулировать настройками APT добавляя или удаляя подготовленные файлы с настройками.
auth.conf
Файл, содержащий ключи, для авторизации в репозиториях. Например, туда добавляются логины и пароли от репозиториев к купленным в Центре приложений программам.
sources.list
sources.list.d
Директория с файлами репозиторий, по назначению аналогичных sources.list. Каждый репозиторий описывается в отдельном файле.
Использование
В APT входит несколько утилит, выполняющих отдельные задачи.
Начиная с версии Ubuntu 16.04 доступна новая утилита apt , которая содержит наиболее часто используемые команды из apt-get и apt-cache . Утилита apt предназначена для пользователей, в то время как apt-get можно рассматривать как как инструмент более низкого уровня.
apt-get
apt-get это утилита управления пакетами. apt-get требует прав суперпользователя для своей работы.
update — Обновить информацию о пакетах, содержащихся в репозиториях.
install foo — Установить пакет foo. Скачивание, установка и настройка происходят автоматически. Если для настройки пакета foo нужны дополнительные сведения, будет показан запрос к пользователю.
upgrade — Обновление пакетов, для которых в репозитории доступны новые версии.
dist-upgrade — Обновление пакетов, требующих разрешения зависимостей (установка дополнительных или удаление конфликтующих пакетов).
remove foo — Удаление пакета foo из системы.
purge foo — Удаление пакета foo и очистка системы от его конфигурационных файлов. Файлы настроек в домашних каталогах пользователей удалены не будут.
autoremove — Удаление пакета, который более не нужен в системе. Используется для очистки системы от ненужных пакетов. Факт, что пакет более не нужен, определяется следующим образом: если пакет был установлен не сам по себе, а как зависимость для другого пакета, который впоследствии был удалён, значит этот пакет тоже уже не нужен в системе.
source foo — Получение исходных текстов пакета foo.
build-dep foo — Получение зависимостей для сборки пакета foo.
Починка базы пакетов
apt-get также используется для устранения сбоев в базе пакетов вызванных нарушенными зависимостями. Разрешение зависимостей производится командой:
sudo apt-get install -f
apt-cache
apt-cache – утилита, позволяющая выполнять запросы к кешу APT.
search — Поиск пакета по части названия или описания. Поддерживает регулярные выражения.
show — Информация о пакете: версия, размер, описание и т. п.
depends — Зависимости указанного пакета.
rdepends — Обратные зависимости пакета.
apt-key
apt-key служит для добавления ключей от репозиториев в систему. Ключи защищают репозитории от возможности подделки пакета. Подробнее смотрите в статье Репозитории.
Apt-Get
Команда apt-get — это мощный консольный инструмент, который работает с Улучшенным инструментарием пакетов (APT) Ubuntu, выполняющий такие функции, как установка новых программных пакетов, обновление имеющихся пакетов, обновления индекса списка пакетов и даже обновление все системы Ubuntu.
Будучи простым консольным инструментом, apt-get имеет ряд преимуществ над другими инструментами управления пакетами, доступными в Ubuntu серверным администраторам. Некоторые из этих преимуществ включают легкое использование простых терминальных соединений ( SSH ) а также возможность использования в сценариях системных администраторов, которые могут быть автоматизированы с помощью утилиты планирования cron.
Некоторые примеры популярного использования утилиты apt-get:
Установка пакета: Установка пакетов с использованием инструмента apt-get очень проста. Например, для установки сетевого сканера nmap наберите следующее:
sudo apt-get install nmap
Удаление пакета: Удаление пакета (или пакетов) такое же примитивное. Для удаления пакета, установленного в предыдущем примере, наберите следующее:
sudo apt-get remove nmap
Несколько пакетов: Вы можете указать несколько пакетов для установки или удаления, разделяя их пробелами.
Кроме того, добавление опции –purge к apt-get remove удалит также и конфигурационные файлы. Это может оказаться желательным или нежелательным, поэтому используйте с осторожностью.
Обновление индекса пакетов: Индекс пакетов APT по существу база данных доступных пакетов из репозиториев, определенных в файле /etc/apt/sources.list и каталоге /etc/apt/sources.list.d . Для обновления локального индекса пакетов до последних изменений в репозиториях наберите следующее:
sudo apt-get update
Обновление пакетов: Со временем обновленные версии установленных на вашем компьютере пакетов могут стать доступными в репозиториях (например, обновления безопасности). Для обновления вашей системы сначала обновите ваш индекс пакетов, как показано выше, а затем выполните:
sudo apt-get upgrade
Для информации по обновлению до нового выпуска Ubuntu смотрите Обновление
Действия команды apt-get, такие как установка и удаление пакетов, сохраняются в файле журнала /var/log/dpkg.log .
Для дальнейшей информации по использованию APT читайте всестороннее руководство Debian APT User Manual или наберите:
Консольные инструменты управления пакетами
Считается, и вполне оправданно, что набрать одну команду в терминале сильно проще, чем кликать мышкой по GUI инструментам. Кроме того, основой Linux всё-таки является терминал. Поэтому я никак не могу обойти описание работы с пакетами из терминала. К тому же большинство инструкций для Ubuntu содержат консольные команды управления пакетами, хотя все операции можно выполнить и через графические приложения. В общем, настоятельно рекомендую прочитать эту статью до конца, хотя на практике вам возможно всё описанное применять и не понадобится.
В Ubuntu есть три основных основных консольных инструмента для работы с пакетами: dpkg, aptitude и apt-get. По умолчанию установлена только apt-get. Но вы всегда можете установить остальные две, с помощью той же apt-get.
Утилита APT (Advanced Packaging Tool)
Основным же консольным инструментом работы с пакетами является APT . В некотором смысле это консольный аналог менеджера пакетов Synaptic, хотя APT на самом деле обладает куда как большим функционалом. В нее входят утилиты apt-get , apt-cache и apt-key .
Сразу же вспомните про sudo , поскольку как ни странно, для внесения изменений в установленные компоненты системы apt-get требует административных полномочий. Хотя apt-cache работает и от имени обычного пользователя.
Начнём с того, что установить пакеты из репозиториев можно командой
sudo apt-get install имя_пакета1 [имя_пакета2 . ]
Сколько бы вы не указали пакетов, apt-get автоматически разрешит все зависимости и предложит вам конечный вариант необходимых действий, вам останется только лишь согласиться, нажав Enter :
Обратите внимание, apt-get предлагает вам в квадратных скобочках два возможных варианта ответа на поставленный вопрос:
Д означает Да, то есть согласие, н — это Нет, то есть отказ. Вам нужно ввести символ, соответствующий вашему выбору и нажать Enter . Однако, есть вариант по умолчанию, выделенный в списке большой буквой, и если вам нужен именно он, то вы можете ничего не вводить, просто нажать Enter .
Аналогично установке, удалить пакеты можно одной из двух команд:
sudo apt-get remove имя_пакета1 [имя_пакета2 . ] sudo apt-get purge имя_пакета1 [имя_пакета2 . ]
Первая удаляет только файлы пакета, оставляя настройки нетронутыми, вторая же удаляет пакет полностью (пользовательские настройки не удаляются).
Напоследок, несколько полезных команд:
sudo apt-get update — обновление информацию о пакетах, содержащихся в репозиториях. Никаких новых пакетов скачано и установлено не будет. Система просто проверит, есть ли новые версии для установленных у вас пакетов.
sudo apt-get upgrade — обновление пакетов, для которых в репозитории доступны новые версии. Будут скачаны из репозиториев и установлены в систему новые версии пакетов.
sudo apt-get autoremove — удаление пакетов, которые больше не нужны. Если пакет А был установлен не сам по себе, а как зависимость для пакета В, то, после удаления пакета В, пакет А тоже не нужен 1) .
sudo apt-get install -f — используется для устранения сбоев в базе пакетов вызванных нарушенными зависимостями.
Более подробную информацию можно узнать командой man apt-get .
Для получения информации о пакете используется утилита apt-cache . Основные команды:
apt-cache search — Поиск пакета по части названия или описания. Поддерживает регулярные выражения.
apt-cache show — Информация о пакете: версия, размер, описание и т. п.
apt-cache depends — Зависимости указанного пакета.
apt-cache rdepends — Обратные зависимости пакета.
apt-key служит для добавления и удаления ключей от репозиториев в систему. Ключи защищают репозитории от возможности подделки пакета.
sudo apt-key add — Добавление ключа в базу доверенных ключей.
sudo apt-key del — Удаление ключа из доверенных.
Утилита dpkg
dpkg — это низкоуровневая программа управления пакетами, единственная полезная её функция для обычного пользователя — это прямая установка пакета из deb-файла 2) (хотя, эту же операцию можно выполнить через Центр программного обеспечения). Выполняется она командой
sudo dpkg -i имя_пакета.deb
Для того, чтобы команда успешно выполнилась, в системе должны присутствовать все зависимости устанавливаемого пакета, поскольку dpkg не умеет их разрешать и скачивать что-либо из репозиториев. Можно так же ставить несколько пакетов за раз, передавая их все как аргументы команде dpkg -i . Больше я пожалуй ничего про dpkg рассказывать не буду, да и вряд ли вам как-либо ещё понадобится использовать эту утилиту.
Утилита aptitude
aptitude — утилита очень похожая на apt-get . Более того, большинство команда для apt-get , можно использовать и для aptitude , благо для этого вам всего лишь придётся заменить одно слово в команде на другое 3) . Недостатком aptitude является необходимость настройки, каким именно образом она будет разрешать зависимости. Зато, иногда она лучше обрабатывает эти самые зависимости, имеет мощный поиск, графический консольный интерфейс и ведет логи выполняемых операций.
Посмотреть версию конкретного пакета можно командой
sudo aptitude -v имя_пакета
Произвести поиск нужного пакета по доступным источникам приложений можно командой
aptitude search фраза
По умолчанию поиск производится по именам пакетов, для поиска по описаниям надо перед искомой фразой добавить символы ~d 4) :
aptitude search ~dфраза
Ну и наконец aptitude имеет мощный графический интерфейс, попасть в него можно набрав в терминале просто aptitude . Вот как это выглядит:
Несмотря на неприглядный вид работать с этим очень удобно, но всё-таки обычно пользователю более привычны инструменты вроде Synaptic, поэтому подробно описывать работу с графической оболочкой aptitude я не буду.
И напоследок хочется заметить, что обычно в разнообразных инструкциях для установки пакетов вы увидите команду
sudo aptitude install имя_пакета
sudo apt-get install имя_пакета
Это ни в коей мере не значит, что кровь из носу надо исполнять эту команду. Вы спокойно можете поставить указанные пакеты через тот же Synaptic. Просто авторы инструкций обычно экономят своё время на объяснении куда и как надо нажимать в Synaptic, давая вместо всего этого одну маленькую команду. Но в конечном итоге и aptitude и apt-get и Synaptic выполняют одни и те же действия, так что используйте тот инструмент, который вам удобен.
Я описал только малую часть возможностей консольных утилит управления пакетами, однако всё остальное вам вряд ли потребуется.
P.S. Немного позитива
Разработчики — люди весёлые. Наберите в терминале команду
apt-get moo
Забавно? Как же может ответить на это aptitude :
aptitude moo
Вот незадача! Но постойте, а если попросить повежливей?
aptitude -v moo
А можно и ещё вежливей, и даже намного вежливей:
aptitude -vv moo aptitude -vvv moo
Что называется, продолжайте по аналогии. Но это всё развлечения, нас же ждёт следующая тема:
На самом деле, все может быть сложнее: например, пакет А может быть зависимостью для двух или более пакетов, поэтому, после удаления только одного из этих пакетов, пакет А все еще будет нужен в системе. Но, не беспокойтесь: умный «apt-get» лишнего не удалит.
на самом деле, возможности этой программы намного шире, но обсуждать их в этой статье мы не будем
То есть если вы видите какую-нибудь команду с apt-get , просто замените в ней apt-get на aptitude и всё отлично заработает.
aptitude поддерживает огромное количество модификаторов поиска, кроме ~d , вообще механизм поиска у aptitude очень мощный, так что при необходимости можете поинтересоваться им. Однако обычно всё-таки проще искать через Synaptic или Центр Приложений.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
При подготовке материала использовались источники:
https://help.ubuntu.ru/wiki/apt
https://help.ubuntu.ru/wiki/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_ubuntu_server/%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0%D0%BC%D0%B8/apt-get
https://help.ubuntu.ru/wiki/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_ubuntu_desktop_14_04/%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B