dpkg linux что это
Dpkg linux что это
Это руководство не следует использовать сопровождающим пакетов, которые хотят понять, как dpkg будет устанавливать их пакеты. Описание того, что делает dpkg при установке и удалении пакетов особенно не полно.
ОПИСАНИЕ
dpkg can be also be used as a front-end to dpkg-deb (1). The following are dpkg-deb actions, and if they are encountered, dpkg just runs dpkg-deb with the parameters given to it: Все эти действия описаны в dpkg-deb (1).
ИНФОРМАЦИЯ О ПАКЕТАХ
СОСТОЯНИЯ ПАКЕТА
ВЫБРАННЫЕ СОСТОЯНИЯ ПАКЕТА
ФЛАГИ ПАКЕТА
ДЕЙСТВИЯ
Установка состоит из следующих шагов:
1. Извлечение управляющих файлов нового пакета.
2. Если другая версия этого пакета была установлена ранее, то запускается сценарий prerm из старого пакета.
4. Распаковываются новые файлы, в тоже самое время сохраняя старые, чтобы если что-то пойдет не так, можно было их восстановить.
5. Если ранее была установлена другая версия этого пакета, то запускается сценарий postrm для старого пакета. Заметим, что этот сценарий запускается после сценария preinst нового пакета, потому что новые файлы записываются в то же самое время, когда удаляются старые.
Настройка состоит из следующих шагов:
1. Распаковка конфигурационных файлов, в то же самое время сохраняя старые конфигурационные файлы, чтобы можно было восстановить их, если что-то пойдет не так.
Удаление пакета состоит из следующих шагов:
1. Запуск сценария prerm
2. Удаление установленных фалов
dpkg-query actions Смотрите dpkg-query (1) для более подробной информации о нижеследующих действиях.
ПАРАМЕТРЫ
Предупреждение: Эти параметры предназначены только для использования экспертами. Использование без полного понимания их действия может нарушить работоспособность всей системы.
all : Turns on (or off) all force options.
downgrade (*): Установить пакет, даже если уже установлена его более новая версия.
Предупреждение: На данный момент dpkg не выполняет проверку зависимостей при переходе на более старую версию и поэтому не предупредит если это поломает зависимости с остальными пакетами. Это может иметь серьёзные последствия: замена на более старую версию системных компонентов первой необходимости может привести к полной неработоспособности системы. Использовать осторожно.
configure-any : Настроить также все распакованные, но ненастроенные пакеты, от которых зависит текущий пакет.
hold : Обрабатывать даже пакеты, помеченные как «зафиксированные».
remove-reinstreq : Удалить пакет, даже если он сломан и отмечен как требующий переустановки. Это может, например, привести к тому, что части пакета останутся в системе, а dpkg про них забудет.
remove-essential : Удалить, даже если это пакет первой необходимости (имеет приоритет «Essential»). Эти пакеты в основном содержат базовые команды Unix. Удаление такого пакета может привести к потере работоспособности системы, так что используйте данный параметр осторожно.
depends : Превратить проблемы с зависимостями в предупреждения.
depends-version : Не обращать внимание на версии при проверке зависимостей.
conflicts : Установить, даже если пакет конфликтует с другим пакетом. Это опасно, так как обычно приводит к перезаписи некоторых файлов.
confmiss : Всегда устанавливать пропущенный конфигурационный файл. Это опасно, так как не будут сохранены изменения (удаление) файла.
overwrite : Перезаписать файл из одного пакета файлом из другого пакета.
overwrite-dir : Перезаписать каталог из одного пакета файлом из другого.
overwrite-diverted : Перезаписать файл с изменённым расположением(diverted) его неизменённой версией.
architecture : Обрабатывать даже пакеты с неправильной архитектурой.
bad-path : В PATH отсутствуют важные программы, поэтому могут возникнуть проблемы.
not-root : Попытаться установить или удалить пакет, даже если не нет прав суперпользователя.
bad-verify : Устанавливать пакет, даже если он не прошёл проверку подлинности.
‘. Errors are reported as `status:
‘ for status change updates; `YYYY-MM-DD HH:MM:SS
ФАЙЛЫ
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
ПРИМЕРЫ
To list packages related to the editor vi (1):
To see the entries in /var/lib/dpkg/available of two packages:
Вручную просмотреть список пакетов:
Удалить установленный пакет elvis:
Чтобы установить пакет, сначала нужно найти его в архиве или на CDROM. Файл «available» показывает, что пакет vim находится в секции «editors» («редакторы»):
Получить локальную копию состояний выбранных пакетов:
Вы можете перенести этот файл на другой компьютер и установить его там с помощью:
Заметим, что при этом ничего не будет ни установлено, ни удалено, просто будут заданы состояния запрошенных пакетов. Для того, чтобы на самом деле скачать и установить запрошенные пакеты, вам понадобится другая программа. Например, запустите dselect и выберите «Установить».
Обычно dselect (8) предоставляет более удобный способ изменить состояния выбранных пакетов.
Manpages
dpkg − среднеуровневый менеджер пакетов для Debian
СИНТАКСИС
ВНИМАНИЕ
Это руководство не следует использовать авторам пакетов, которые хотят понять, как dpkg будет устанавливать их пакеты. В частности, описание того, что делает dpkg, когда устанавливает и удаляет пакеты, частично неадекватно. Подробную информацию об этом можно найти в рубрике Система Управления Пакетами в debian-faq в системе GNU Info. Информация по созданию пакетов Debian находится в рубрике Средства Управления Пакетами Debian там же.
ОПИСАНИЕ
dpkg может также использоваться как интерфейс к dpkg-deb. Нижеследующие действия являются действиями dpkg-deb, и если они встречаются, то dpkg просто запускает dpkg-deb с указанными параметрами:
-b, —build,
-c, —contents,
-I, —info,
-f, —field,
-e, —control,
-x, —extract,
-X, —vextract, а также
—fsys-tarfile.
Пожалуйста, обратитесь к dpkg-deb(1), где описаны все эти действия.
ИНФОРМАЦИЯ О ПАКЕТАХ
dpkg поддерживает некоторую полезную информацию о доступных пакетах. Эта информация делится на три класса: состояния, состояния выбора и флаги. Предполагается, что в большинстве случаев эта информация изменяется с помощью dselect.
СОСТОЯНИЯ ПАКЕТА
installed
Пакет распакован и успешно настроен.
Установка пакета была запущена, но не закончена по какой-либо причине.
Пакет не установлен на вашей системе.
Пакет распакован, но не настроен.
Пакет распакован и настройка была запущена, но пока еще не завершена по какой-либо причине.
В системе существуют только конфигурационные файлы пакета.
СОСТОЯНИЯ ВЫБОРА ПАКЕТА
install
Пакет выбран для установки.
Пакет выбран для удаления (т. е. мы хотим удалить все файлы, кроме конфигурационных).
Пакет выбран для полной очистки (т. е. мы хотим удалить абсолютно все файлы, включая конфигурационные).
Пакет помечен как hold («приостановленный»), и не обрабатывается dpkg, пока не указан флаг —force-hold.
Пакет, помеченный как reinst-required, является битым и требует переустановки. Такие пакеты не могут быть удалены, пока не указан флаг —force-reinstreq.
Установить заданный пакет. Если указан флаг —recursive или -R, то вместо имени файла пакета должен быть указан каталог.
Установка состоит из следующих шагов:
1. Извлечение управляющих файлов из пакета.
2. Если другая версия этого пакета была установлена ранее, то запускается скрипт prerm из старого пакета.
3. Запускается скрипт preinst, если он есть в этом пакете.
4. Распаковываются новые файлы, в тоже самое время сохраняя старые, чтобы если что-то пойдет не так, можно было их восстановить.
5. Если ранее была установлена другая версия этого пакета, то запускаем скрипт postrm для старого пакета. Заметим, что этот скрипт запускается после скрипта preinst нового пакета, потому что новые файлы записываются в то же самое время, когда удаляются старые.
6. Настройка пакета. См. —configure, где приведена подробная информация об этом шаге.
Распаковать пакет, но не конфигурировать его. Если задан ключ —recursive или —R, то вместо имени файла пакета должен быть указан каталог.
Переконфигурировать распакованный пакет. Если вместо имени пакета задан ключ -a или —pending, то все распакованные, но не настроенные пакеты будут настроены.
Настройка состоит из следующих шагов:
1. Распаковка конфигурационных файлов, в то же самое время сохраняя старые конфигурационные файлы, чтобы можно было восстановить их, если что-то пойдет не так.
2. Запуск скрипта postinst, если он есть в этом пакете.
Удаление пакета состоит из следующих шагов:
1. Запуск скрипта prerm
2. Удаление установленных фалов
3. Запуск скрипта postrm
Выводит детальную информацию о пакете, которую извлекает из файла /var/lib/dpkg/available.
Обновить представление dpkg и dselect о доступных пакетах. Действие —merge-avail комбинирует старую информацию с информацией из файла Packages. Действие —update-avail перезаписывает старую информацию информацией из файла Packages. Файл Packages обычно распространяется с Debian GNU/Linux. dpkg хранит информацию о доступных пакетах в /var/lib/dpkg/available.
Обновить представление dpkg и dselect о доступных пакетах информацией из пакета с указанным именем. Если задан ключ —recursive или -R, то вместо имени файла пакета должен быть указан каталог.
Забыть о неустановленных и недоступных пакетах.
Очистить имеющуюся информацию о том, какие пакеты доступны.
Сообщает о статусе указанного пакета, просто показывая соответствующую запись из базы статусов установленных пакетов.
Ищет пакеты, которые были установлены в вашей системе только частично. dpkg посоветует, что делать с ними, чтобы восстановить их работоспособность.
Выдает список состояний выбора пакетов.
Задает список состояний выбора пакетов, принимая его со стандартного ввода.
Ищет пакеты, выбранные для установки, но по какой-то причине еще не установленные.
Показывает файлы, установленные на вашей системе из пакета с указанным именем. Заметьте, однако, что файлы, созданные установочными скриптами пакета, не будут показаны.
Ищет в установленных пакетах файл по заданному образцу. В образце допустимы стандартные символы шаблонов командной оболочки.
Выдает архитектуру целевой системы (например, «i386»). Этот ключ использует программу gcc.
Выдает архитектуру целевой системы по версии GNU (например, «i486»).
Выдает архитектуру машины для инсталляции.
Сравнивает номера версий, используя op в качестве бинарного оператора. dpkg возвращает код успешного завершения (нуль), если указанное условие удовлетворяется, или неудачу (не-нуль) в противном случае. Есть две группы операторов, которые по-разному обращаются с отсутствующим параметром ver1 или ver2. Операторы lt le eq ne ge gt считают отсутствующий номер версии более ранним, чем любой другой. Операторы lt-nl le-nl ge-nl gt-nl считают отсутствующий номер версии более поздним, чем любой другой. Операторы = >> > используются только для совместимости с синтаксисом файла control.
Показывает небольшую подсказку.
Выдает подсказку о ключах —force-что-нибудь.
Выдает подсказку об отладочных ключах.
Показывает лицензию dpkg.
Показывает информацию о версии dpkg.
См. dpkg-deb(1) для более подробной информации о нижеследующих действиях.
КЛЮЧИ
Если пакет удаляется, то возможно, что другой установленный пакет зависит от удаляемого пакета. Указание этого флага приведет к автоматической деконфигурации пакета, который зависит от удаляемого пакета.
Маска Описание
1 Основная полезная информация по ходу выполнения
2 Вызов и состояния скриптов поддержки
10 Вывод по каждому обработанному файлу
100 Подробный вывод по каждому обработанному файлу
20 Вывод по каждому конфигурационному файлу
200 Подробный вывод по каждому конфигурационному файлу
40 Зависимости и конфликты
400 Подробное освещение зависимостей и конфликтов
1000 Подробная ерунда, например о каталоге dpkg/info
2000 Невероятное количество ерунды
Предупреждение: Эти флаги предназначены только для использования экспертами. Использование их без полного понимания их действия может нарушить работоспособность вашей системы.
all: Включает (или выключает) все элементы.
auto-select(*): Выбирает пакеты, чтобы установить их, и снимает выделение, чтобы удалить их.
downgrade(*): Установить пакет, даже если уже установлена его более новая версия.
configure-any: Настроить также распакованные, но не настроенные пакеты, от которых зависит текущий пакет.
hold: Обрабатывать даже пакеты, помеченные как «hold».
remove-reinstreq: Удалить пакет, даже если он побит и отмечен как требующий переустановки. Это может, например, привести к тому, что части пакета останутся в системе, а dpkg про них забудет.
remove-essential: Удалить, даже если пакет важен (имеет приоритет «Essential»). Важные пакеты в основном содержат базовые команды unix. Удаление такого пакета может привести к потере работоспособности системы, так что используйте данный ключ с осторожностью.
depends: Превратить проблемы с зависимостями в предупреждения, а не ошибки.
depends-version: Не беспокоиться о версиях при проверке зависимостей.
conflicts: Установит, даже если пакет конфликтует с другим пакетом. Это опасно, так как обычно приводит к перезаписи некоторых файлов.
confnew: Если конфигурационный файл был изменен, всегда устанавливать новую версию без запроса подтверждения.
confold: Если конфигурационный файл был изменен, всегда сохранять старую версию без запроса подтверждения.
confdef: Если конфигурационный файл был изменен, всегда выбирать действие по умолчанию. Если такового нет, то спросить у пользователя, если не задан ключ —force-confnew или —force-confold (в этом случае соответствующий ключ используется для выяснения, что именно нужно делать).
overwrite: Перезаписать файл из одного пакета файлом из другого пакета.
overwrite-dir: Перезаписать каталог из одного пакета файлом из другого.
overwrite-diverted: Перезаписать перенаправленный файл (diverted file) его неперенаправленной версией.
architecture: Обрабатывать пакеты не с той архитектурой.
bad-path: В путях поиска (переменной окружения PATH) отсутствуют важные программы, поэтому могут возникнуть проблемы.
not-root: Попытаться установить или удалить пакет, даже если не суперпользователь.
Игнорировать проверку зависимостей для заданных пакетов (на самом деле, проверка выполняется, но выдаются только лишь предупреждения о конфликтах и ничего более).
Выбирает, соответственно, новый или старый формат пакета. Это ключ программы dpkg-deb(1).
Не читать и не проверять содержимое файла control при создании пакета. Это ключ программы dpkg-deb(1).
Делать все, что необходимо, но не записывать на диск изменения. Это используется для того, чтобы посмотреть, что произошло бы при выполнении указанного действия, но при этом ничего не изменять.
Рекурсивная обработка всех файлов, отвечающими шаблону *.deb, которые были найдены в заданных каталогах и во всех их подкаталогах. Этот флаг можно использовать вместе с действиями -i, -A, —install, —unpack, —avail.
Не устанавливать пакет, если новая версия такого же пакета уже установлена. Это синоним флага —refuse-downgrade.
Обрабатывать только пакеты, выбранные для установки. Такой выбор делается программой dselect или же самой программой dpkg, когда они обрабатывают соответствующий пакет. Например, когда пакет удаляется, он будет помечен для установки.
Не устанавливать пакет, если та же версия этого пакета уже установлена.
ФАЙЛЫ
Файл конфигурации с ключами по умолчанию.
Остальные файлы перечислены с указанием их каталогов по умолчанию, см. ключ admindir, чтобы узнать, как изменить местоположение этих файлов.
/var/lib/dpkg/available
Список доступных пакетов.
Состояния доступных пакетов. Этот файл содержит информацию о том, помечен ли пакет для удаления или нет, установлен он или нет, и т. д. См. главу ИНФОРМАЦИЯ О ПАКЕТАХ, где приведена подробная информация.
Нижеследующие файлы являются компонентами бинарного пакета. См. deb(5), там приведена подробная информация о них:
control
conffiles
preinst
postinst
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
Задайте этой переменной любое значение, если вы предпочитаете, чтобы dpkg при запуске командной оболочки не приостанавливала себя, а создавала новый процесс.
Программа, которую запустит dpkg при старте новой командной оболочки.
Задает количество колонок текста, используемых программой dpkg для отображения форматированного текста. В настоящий момент используется только ключом -l.
ПРИМЕРЫ
Вручную просмотреть список пакетов:
less /var/lib/dpkg/available
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
Умение устанавливать, обновлять и удалять программное обеспечение относится к важнейшим навыкам работы с любой операционной системой. Поэтому изучение данного вопроса первостепенная задача для любого начинающего пользователя Linux, сразу после того, как он немного осмотрелся в системе. К сожалению, нет единого способа управления ПО, подходящего для всех дистрибутивов, разные семейства предполагают различные подходы, хотя общие принципы во многом совпадают. В данном материале мы будем разбирать вопрос применительно к системам основанным на Debian и Ubuntu.
Пакеты и репозитории
Несмотря на разные форматы, общие принципы построения и управления пакетами в различных Linux системах совпадают, поэтому если вы овладеете приемами работы с одним форматом пакетов, то переучиться на другой не составит особого труда.
Кроме того, при разработке свободного ПО широко используются наработки других проектов, действительно, зачем повторно изобретать велосипед, если нужные функции уже есть в библиотеке другого проекта. Достаточно просто указать нужный пакет в зависимостях, при этом скачивать весь сторонний проект также будет не нужно, достаточно только необходимых пакетов.
Кроме того, установка пакетов в обход репозитория может быть небезопасна и считается правилом дурного тона, хотя и применяется, в основном для коммерческого ПО. Наличие репозиториев также позволяет централизованно обновлять пакеты, достаточно сравнить текущие версии пакетов с версиями в репозитории и скачать нужные обновления. Это удобно, так как одновременно обновляется и система и все установленное в нее ПО.
Кроме того, собственные репозитории существуют и у разработчиков. Поэтому, если вы хотите получать самую свежую версию нужного вам продукта, не дожидаясь пока ее включат в дистрибутив, то можете подключить репозиторий разработчика и обновлять его оттуда.
Как правило типичный дистрибутив на базе Debian имеет четыре основных репозитория:
Каждый репозиторий состоит из нескольких разделов, в Debian это:
В Ubuntu разделы немного иные:
Список подключенных репозиториев хранится в /etc/apt/sources.list, ниже показано содержимое этих файлов в Debian 10 (слева) и Ubuntu 18.04 (справа).
В Debian все достаточно лаконично, подключен только раздел main трех репозиториев Base, Security updates и Stable updates, если вам нужны иные разделы, то их следует подключить самостоятельно, добавив через пробел в нужную строку.
В Ubuntu более развернутый список репозиториев, он полностью не уместился на скриншот, но для понимания структуры записей приведенного фрагмента хватает. Сверху вниз подключены Base и Security updates для поддерживаемых компанией разделов, затем они же вместе для свободного и несвободного ПО поддерживаемого сообществом, а вот Stable backports прописан для всех веток одновременно, еще ниже (за пределами экрана на скриншоте) подключены Security updates и специальный партнерский репозиторий для пакетов партнеров компании Canonical.
Типичная запись репозитория выглядит как строка со следующей структурой:
Адреса репозиториев сохраняются постоянными, отличаясь только именами выпуска, поэтому если вам нужно обновить выпуск, скажем с Debian 9 на Debian 10, то вам просто потребуется заменить везде stretch (имя девятого выпуска) на buster.
Также в Debian можно использовать вместо имен классы выпусков:
Но на практике это не используется, так как при выходе нового релиза вы получите его автоматическое обновление, что в большинстве случаев неприемлемо. Хотя если вы энтузиаст и хотите всегда быть на переднем крае прогресса, то можете везде прописать testing, получив аналог популярных ныне rolling release дистрибутивов, которые не имеют закрепленной версии и всегда предоставляют наиболее свежий срез пакетов, зачастую ценой стабильности.
Для добавления собственных источников пакетов предназначена директория /etc/apt/sources.list.d/ в которой следует располагать файлы с адресами источников и обязательным расширением .list. Хотя их можно прописать и в основной файл, но это считается дурным тоном.
Низкоуровневый менеджер пакетов Dpkg
Данная утилита обычно используется для установки пакетов, скачанных вручную, например, коммерческого ПО. Синтаксис ее довольно прост и легко запоминается. Прежде всего полезно получить информацию о пакете, чтобы узнать его зависимости и возможные конфликты, для этого выполните:
Для установки просто выполните:
Но помните, что dpkg не умеет разрешать зависимости и вы должны будете сделать это вручную, либо скачать все необходимые пакеты и установить их в нужном порядке, это можно поручить dpkg, запустив его с маской в имени пакетов:
Такая конструкция установит все находящиеся в данном расположении deb-пакеты, так что будьте внимательны, либо используйте более узкие маски.
Чтобы получить сведения о всех доступных и установленных пакетах используется ключ -l, но он выведет список всех пакетов, поэтому следует использовать его с маской, например, так:
Так как мы задали имя пакета без подстановочных символов, то информация будет выведена только при полном совпадении заданного имени с именем пакета. Если мы хотим получить больше информации, то можем сделать так:
Теперь мы видим больше пакетов, как установленных в системе, так и доступных в репозитории. Но это не все пакеты, относящиеся к gimp, так как наша маска предписывает искать пакеты, которые начинаются на gimp и игнорирует иные варианты. Поэтому, если вы не уверены, что правильно задали маску, можно пойти другим путем, отдав вывод dpkg команде grep, которая найдет все нужные вхождения.
В этом случае вы получите список только установленных, либо удаленных, но имеющих оставшиеся части (например, конфигурационные файлы) пакетов, но при этом будут найдены все вхождения указанной строки, даже в середине имени, в данном случае мы обнаружили ранее не найденную библиотеку libgimp2.0
Для удаления пакета используйте:
Обратите внимание, что здесь мы указываем не имя deb-файла, а имя установленного пакета, узнать его можно способом, представленным выше. Часто после удаления пакета от него остаются конфигурационные файлы и иные данные, полностью очистить их можно командой:
Но будьте внимательны, при этой операции могут быть удалены пользовательские данные, хранившиеся в стандартных расположениях. Это актуально для таких видов программ, как веб-сервера или СУБД.
На этом мы закончим знакомство с dpkg, ограничившись наиболее часто необходимыми в повседневной деятельности командами, а сами перейдем к более высокоуровневым инструментам.
Улучшенный инструмент для работы с пакетами APT и команды apt и apt-get
Настоящим пакетным менеджером в Debain является APT (Advanced Package Tool, Улучшенный инструмент для работы с пакетами), который умеет работать с репозиториями, разрешать зависимости и взаимодействовать с dpkg, которая, собственно, и занимается установкой пакетов.
APT имеет два интерфейса командной строки: apt-get и более новый apt. Их синтаксис и возможности во многом схожи, и мы будем практически всегда использовать последний, кроме отдельных случаев, когда требуемые возможности поддерживает только apt-get.
Списки пакетов представляют собой простые текстовые файлы с перечнем пакетов в репозитории, данными о пакете, его зависимостях и его расположении в структуре репозитория, один из таких списков открыт на скриншоте выше.
APT всегда работает с локальным кешем списков, поэтому перед любыми действиями с пакетным менеджером следует обновить списки в кеше. Это можно сделать командой, которая должна быть широко известна нашим читателям:
Команда проверяет версии списков в репозитории и при необходимости скачивает их новые версии, после чего анализирует список установленных пакетов и сообщает о доступных обновлениях, увидеть список пакетов, для которых доступны обновления можно командой:
Установить обновления можно командой:
Это безопасный способ обновления, при котором обновляются только установленные пакеты и не происходит установки новых пакетов, если они затрагивают текущие версии, также не удаляются убранные из репозитория пакеты. Если же вы хотите установить самые последние версии пакетов, то следует воспользоваться иной командой:
Следует понимать разницу в работе этих команд, потому что во многих случаях результат их работы оказывается одинаковым и кажется, что разницы между ними нет. Например, в ситуации, показанной на скриншоте выше обе команды отработают одинаково.
Обычные обновления следует выполнять командой upgrade, тогда как dist-upgrade следует использовать для обновления дистрибутива, в том числе и на минорные версии в составе текущего выпуска.
Для установки пакетов следует использовать команду:
Если нужно установить несколько пакетов, то их следует перечислить через пробел. Система проанализирует изменения и либо выполнит установку, либо попросит дополнительного подтверждения, особенно если нужно установить большое количество новых пакетов по зависимостям.
В целом APT хорошо знает свое дело, но мы все равно советуем обращать внимание на состав добавляемых и, особенно, удаляемых пакетов. Также не будет лишним изучить список предлагаемых пакетов, там вы можете найти много интересного и полезного, что позволит расширить возможности устанавливаемого ПО и о чем вы могли даже не догадываться.
Для удаления пакета используйте:
Это удалит сам пакет, но оставит его конфигурационные файлы (если они были изменены) и прочие данные. Для полного удаления пакета со всеми его данными используйте другую команду:
Но будьте внимательны, так как эта команда удалит все данные пакета, в том числе и добавленные пользователем в стандартные расположения, данные, находящиеся в домашних директориях пользователей при этом удалены не будут.
Дополнительно остановимся на таком виде пакетов, как пакеты установленные автоматически. Это пакеты, которые были установлены по зависимостям иных пакетов и после удаления или обновления последних могут более никем не использоваться. APT отслеживает такие пакеты и сообщает о них пользователю.
Удалить их можно командой:
Как можно заметить, APT достаточно дружелюбен к пользователю, постоянно подсказывая ему необходимые команды, что в очередной раз развеивает миф о сложности администрирования Linux, особенно в режиме командной строки.
Также иногда может потребоваться возможность очистить кеш скачанных пакетов, скажем при недостатке места на диске, это можно сделать, введя:
Эта команда полностью очистит кеш, также можно использовать более мягкую очистку с помощью apt-get, который дает возможность удалить из кеша только те пакеты, которые на текущий момент отсутствуют в репозитории (были заменены новыми версиями или удалены):
Затронем еще один интересный момент, допустим вы в своих экспериментах удалили или еще как-либо повредили входящие в состав пакета файлы, но система считает, что пакет установлен и отказывается устанавливать его повторно. Но можно всегда переустановить пакет:
Также иногда бывает нужно проверить что произойдет при установке пакета без его установки, особенно если у нас есть подозрения, что мы можем что-то сломать в системе. Для этого запустите команду установки с ключом -s:
Система смоделирует все необходимые действия и покажет вам результат, после чего вы сможете принять верное решение без опасных экспериментов над ней.
Если вы не знаете точного названия нужного вам пакета, то можно выполнить его поиск командой:
При этом поиск производится не только по имени пакета, но и по его описанию. Это удобно и позволяет быстро найти все связанные с указанной строкой поиска пакеты, даже если они имеют отличное наименование.
Для получения информации о пакете просто введите:
Чтобы отменить фиксацию выполните:
Объем данной статьи не позволяет рассмотреть все возможности apt, поэтому мы ограничились наиболее необходимыми в повседневной деятельности, ну и в завершение небольшая порция юмора. Если запустить команду apt без параметров, то вы увидите краткую справку в самом конце которой будет строка: В APT есть коровья СУПЕРСИЛА. Что это значит? Просто наберите:
И вы увидите старую пасхалку от разработчиков, которая была еще в apt-get, а затем ее заботливо перенесли в apt.
Графические оболочки Aptitude и Synaptic
Кроме родных для APT консольных интерфейсов apt-get и apt существуют и более высокоуровневые оболочки. Одна из них aptitude, которая может работать как в псевдографическом режиме, так и в режиме командной строки, имея синтаксис во многом повторяющий синтаксис apt. Благодаря этому многие воспринимают эту утилиту как еще один интерфейс к APT, хотя основной задачей разработчиков было именно создание псевдографической интерактивной оболочки.
В современных дистрибутивах Debian и Ubuntu aptitude отсутствует в основной поставке и вам потребуется установить этот пакет отдельно.
Если вы используете настольную версию Linux, то вам будет доступен графический менеджер пакетов Synaptic, он также отсутствует в основной поставке основных дистрибутивов и может быть установлен вручную. Данный пакет представляет собой опрятный и удобный графический интерфейс над APT, в тоже время дающий администратору все возможности по тонкой настройке процесса.
Однако не смотря на то, что Aptitude и Synaptic являются зрелыми и эффективными инструментами, мы бы не рекомендовали их использование по крайней мере до тех пор, пока вы не освоите работу с базовым интерфейсом apt.
Магазины приложений
Если мы говорим о настольных системах, то нельзя обойти вниманием магазины приложений. Это модный тренд, пришедший из мира мобильных устройств, но быстро завоевавший популярность и в настольной среде. Действительно, системой могут пользоваться разные люди, они могут являться хорошими специалистами в своей отрасли, но им совершенно не хочется разбираться в устройстве системы, а нужно просто включить компьютер в розетку и работать с ним.
Такой подход может вызвать возмущение у продвинутых пользователей и энтузиастов, но он имеет право на жизнь. Компьютер давно перестал быть уделом избранных и стал неотъемлемой частью нашей жизни. Проведем простую аналогию: сев за руль автомобиля многие из нас просто заводят его, нажимают педали, переключают рычаг коробки передач, не задумываясь о том, какие процессы происходят внутри, а в случае каких-либо неполадок отгоняют машину на сервис.
Ниже показан магазин для актуальной версии Debian
Заключение
Как видим, Debian и основанные на нем системы предоставляют широкий выбор инструментов для управления пакетами, начиная от утилит командной строки и заканчивая магазинами приложений. Каждый найдет инструмент себе по душе. Но для начинающих администраторов мы бы рекомендовали в обязательном порядке осваивать базовые инструменты, такие как dpkg и apt, потому что ситуации бывают разные, а базовые инструменты, в отличие от графической оболочки или псевдографических утилит, доступны всегда.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал: