управление пакетами
Применимость: Linux
Задача:
Как устанавливать и удалять программы в Linux
Debian - Ubuntu
Apt-get
- apt-get: устанавливает и удаляет пакеты из системы, а также может обновлять список пакетов и установленное программное обеспечение.
- apt-cache: поиск необходимого пакета по списку пакетов apt, находящегося на локальной машине.
- dpkg - используется для различных административных задач, например, для переконфигурирования Xorg.
Если вы планируете администрировать свою систему и дальше, то должны знать ещё некоторые инструменты, которые рано или поздно пригодятся:
- apt-listbugs: ищет ошибки в пакете программы ещё до установки самой программы.
- apt-listchanges: то же самое, что и apt-listbugs, но для безошибочных изменений.
- apt-rdepends: для показа дерева зависимости пакета.
- deborphan - ищет обособленные зависимости в системе, оставленные после удаления родительских пакетов.
- debfoster - помогает deborphan идентифицировать, в каких зависимостях пакета система больше не нуждается.
- dselect - интерфейс для просмотра, выбора и поиска пакетов в вашей системе.
Ещё: apt-cdrom, apt-config, apt-extracttemplates, apt-ftparchive, apt-key, apt-mark and apt-sortpkgs.
Как вы заметили, это 16 различных инструментов, с которыми вы познакомитесь, когда приступите к изучению вашего дистрибутива.
Дальше - больше, apt-get имеет большую проблему с удалением пакетов. Сначала он определяет зависимости, которые должны быть установлены для выбранного пакета, но не определяет их, когда вы удаляете этот пакет. Если зависимости удовлетворены, ‘apt-get remove’ удалит выбранные пакеты, но оставит обособленные зависимости. Альтернатива?
Aptitude
Перед тем, как продолжить, хотелось бы сказать, что ‘apt-get autoremove’ уже в состоянии обращаться к обособленным зависимостям. Это, конечно, шаг в правильном направлении. Однако, apt-get удобен, если вам захочется изучить 16 дополнительных инструментов к нему. Aptitude, как будет показано, заменит их всех.
Aptitude — это превосходный способ для установки, удаления, обновления, иначе говоря, для управления вашей системой совместно с apt. Во-первых, aptitude может решить проблемы обособленных зависимостей. Во-вторых, у него блокирующий ошибки dselect интерфейс. Последнее, и самое важное, здесь используется один инструмент для выполнения многих функций. Давайте посмотрим: aptitude: при запуске без аргументов появляется графический интерфейс (правда, в консоли, прям как mc) для поиска, установки, обновления и других административных действий над пакетами.
- aptitude install: установка программного обеспечения, а также построение необходимых зависимостей.
- aptitude remove: удаление пакетов, а также обособленных зависимостей.
- aptitude purge: удаление пакетов и обособленных зависимостей, а также ненужных конфигурационных файлов.
- aptitude search: поиск пакетов по локальному списку apt.
- aptitude update: обновление локального списка пакетов.
- aptitude upgrade: обновление уже установленных пакетов по обновленному списку пакетов.
- aptitude clean: удаление установочных файлов.
- aptitude dist-upgrade: обновление пакетов, даже если некоторые из них не будут использованы для установки.
- aptitude show: подробная информация о пакете.
- aptitude autoclean: удаление устаревших пакетов, но сохранение текущих.
- aptitude hold: исправление ошибок в пакете текущей версии, но не его обновление.
Сразу видно, что используется одна команда с разными удобночитаемыми вариантами (нет флагов). И это только верхушка айсберга. Например, используем aptitude при поиске пакета, результат — сортировка найденного в алфавитном порядке и краткое описание каждого пакета. Эта команда даже скажет вам, какие пакеты уже установлены в системе, в отличии от apt-cache, который выводит список пакетов в случайном и неудобно читаемом порядке.
Aptitude превосходит apt-get: лучшая обработка зависимостей, удобный интерфейс, ОДИН инструмент и др.
система помощи Aptitude (русскоязычный вариант):
HELP по APTITUDE
- install - Установить/обновить пакеты
- remove - Удалить пакеты
- purge - Удалить пакеты и их файлы конфигурации
- hold - Зафиксировать пакеты
- unhold - Отменить команду hold для пакета
- markauto - Пометить пакет, что он был установлен автоматически
- unmarkauto - Пометить пакет, что он был установлен вручную
- forbid-version - Запретить aptitude обновлять определённую версию пакета.
- update - Загрузить список новых/обновлённых пакетов
- safe-upgrade - Perform a safe upgrade
- full-upgrade - Perform an upgrade, possibly installing and removing packages
- forget-new - Забыть, какие пакеты «новые»
- search - Поиск пакета по имени и/или выражению
- show - Показать подробную информацию о пакете
- clean - Удалить загруженные файлы пакетов
- autoclean - Удалить старые загруженные файлы пакетов
- changelog - Посмотреть changelog пакета
- download - Загрузить файл .deb для пакета
- reinstall - Загрузить и (возможно) переустановить уже установленный пакет
Параметры:
-h Этот текст помощи -s Имитировать действия, но не выполнять их на самом деле. -d Только загрузить пакеты, ничего не устанавливать и не удалять. -P Всегда спрашивать подтверждение или действия -y Предполагать ответ 'yes' на простой вопрос yes/no -F format Задать формат отображения результатов поиска; смотрите руководство -O order Задать формат сортировки результатов поиска; смотрите руководство -w width Задать ширину вывода результатов поиска -f Принудительно исправлять неработоспособные пакеты. -V Показывать версию устанавливаемых пакетов. -D Показывать зависимости автоматически изменяемых пакетов. -Z Показывать изменение размера установки каждого пакета. -v Отображать дополнительную информацию. (может быть введено несколько раз) -t [release] Задать выпуск, из которого должны быть установлены пакеты -q Не выводить индикатор прогресса в режиме командной строки. -o key=val Вручную установить значение параметра настройки с именем 'key' --with(out)-recommends Указать, будут ли рекомендуемые пакеты трактоваться как строгие зависимости -S fname Читать aptitude информацию о расширенном статусе из fname. -u Загрузить список новых пакетов при запуске. -i Запустить установку при запуске.