Debian посмотреть установленные пакеты

Обновлено: 06.07.2024

При установке программного обеспечения система управления пакетами проверяет и при необходимости устанавливает «зависимости» (dependencies), которые подобраны создателями пакета. Эти зависимости указаны в файле control, имеющемся в каждом пакете.

Программы для управления пакетами в Debian

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

Важно понимать, что высокоуровневые инструменты управления пакетами, такие как aptitude или dselect , для управления пакетами используют apt , который, в свою очередь, использует dpkg .

Подробнее об инструментах управления пакетами Debian написано в Chapter 2. Debian package management справочнике Debian.

8.1.1 dpkg

Это основная программа управления пакетами. dpkg может вызываться с многими параметрами. Наиболее часто используемые из них:

8.1.2 APT

APT (Advanced Package Tool) — расшифровывается как усовершенствованный инструмент управления пакетами, в него входит программа apt-get . Эта программа позволяет легко получать и устанавливать из командной строки пакеты из разных источников. В отличие от dpkg , программа apt-get не понимает файлы .deb, она работает с именами пакетов, и может устанавливать архивы .deb только из источников, указанных в файле /etc/apt/sources.list . После скачивания архивов .deb команда apt-get запускает dpkg .[5].

Часто используемые команды apt-get :

    Обновить список пакетов, имеющихся в источниках:

  • Обновить все пакеты в системе (без установки дополнительных пакетов или удаления пакетов):
  • Установить пакет foo и все его зависимости:
  • Удалить пакет из системы:
  • Удалить из системы пакет и все его файлы настроек:

upgrade оставит старую установленную версию пакета, если для разрешения новых зависимостей при обновлении потребуется установка дополнительных пакетов. Команда

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

Обратите внимание, что в настоящее время apt-get по умолчанию устанавливает рекомендуемые пакеты, и эта программа является предпочтительной для управления пакетами из консоли при выполнении установки или больших обновлений системы вследствие её ошибкоустойчивости.

В комплект инструментов apt входит также программа для обработки запросов по списку пакетов apt-cache . Её можно использовать для поиска пакетов, имеющих определённую функциональность, с помощью простых текстовых запросов или регулярных выражений, а также для получения списка зависимостей из системы управления пакетами. Часто используемые команды apt-cache :

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

Дополнительную информацию можно найти в справочных страницах apt-get(8) , sources.list(5) из пакета apt и в файле /usr/share/doc/apt-doc/guide.html/index.html из пакета apt-doc .

8.1.3 aptitude

aptitude — это пакетный менеджер для систем Debian GNU/Linux, предоставляющий пользовательский интерфейс для инфраструктуры управления пакетами apt. aptitude имеет текстовый интерфейс, написанный с использованием библиотеки curses, позволяет удобно и быстро выполнять задачи управления пакетами.

Помимо функциональности dselect и apt-get , aptitude реализует много других дополнительных возможностей, которых нет ни в одной из этих программ:

  • обеспечивает лёгкий доступ ко всем версиям пакета;
  • позволяет легко отслеживать устаревшее ПО, занося его в «список устаревших пакетов и пакетов, созданных локально»;
  • включает достаточно мощную систему поиска и ограничения отображаемых пакетов. Пользователи, знакомые с mutt , освоятся быстро, так как синтаксис регулярных выражений был навеян этой программой;
  • можно использовать для установки заранее сформированных наборов для определённых задач. Подробности см. вtasksel, раздел 8.1.5;
  • в полноэкранном режиме имеет встроенную функциональность команды su и может запускаться от обычного пользователя. Когда действительно понадобятся права администратора, вызовет su (и, если нужно, запросит пароль суперпользователя).

С aptitude можно работать, используя визуальный интерфейс (просто запустить

aptitude ), или непосредственно из командной строки. Используемый синтаксис командной строки очень похож на синтаксис apt-get . Например, для установки пакета foo , можно выполнить

aptitude install foo .

Заметим, что aptitude является предпочтительной программой для ежедневного управления пакетами из консоли.

Более подробную информацию можно найти в справочной странице aptitude(8) и в пакете aptitude-doc .

8.1.4 synaptic

synaptic — это менеджер пакетов с графическим интерфейсом. Он позволяет устанавливать, обновлять и удалять пакеты ПО через дружественный интерфейс. Помимо обеспечения всех возможностей aptitude, он также позволяет редактировать список используемых репозиториев, и поддерживает обзор всей доступной документации по пакету. Подробности см. на веб-сайте Synaptic .

8.1.5 tasksel

Иногда бывает трудно найти подходящий комплект пакетов для выполнения определённой задачи. Разработчики Debian определили

задачи , представляющие собой наборы из нескольких пакетов Debian, предназначенных для определённой деятельности. Задачи можно устанавливать с помощью программы tasksel или aptitude .

Обычно программа установки Debian автоматически устанавливает задачу создания стандартной системы и окружения рабочего стола. Тип устанавливаемого окружения рабочего стола зависит от используемого носителя CD/DVD, как правило это рабочий стол GNOME (задача

8.1.6 Другие инструменты управления пакетами

8.1.6.1 dselect

Данная программа предоставляет меню-ориентированный интерфейс для системы управления пакетами Debian. Для woody и более ранних версий это был основной интерфейс управления пакетами для первоначальной установки системы, но сейчас пользователям вместо неё предлагается использовать aptitude . Некоторым пользователям может быть более удобно пользоваться aptitude , к тому же это рекомендуемая замена для dselect при масштабных обновлениях. Подробности об aptitude см. в aptitude, раздел 8.1.3.

Основные возможности dselect :

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

После запуска dselect показывает пользователю меню из 7 пунктов, каждый из которых выполняет определённое действие. Пользователь может выбрать одно из действий, перемещая с помощью клавиш со стрелками полосу подсветки, а затем нажав клавишу <enter> для выбора выделенного действия.

Что пользователь увидит далее, зависит от выбранного действия. Если он выбрал какое-то действие, но не

Метод (Access) или

Выбрать (Select) , то dselect просто продолжит выполнение указанного действия. Например, если пользователь выбрал действие

Удалить (Remove) , то dselect выполнит удаление всех файлов, помеченных для удаления пользователем, которые он выбрал в меню

Выбрать (Select) ранее.

Выбрать (Select) позволяют войти в дополнительные меню. В обоих случаях, меню представляют собой экран, разделённый надвое; в верхней части представлен список выбираемых пунктов, в нижней части выводится описание («справка») по каждому пункту.

Доступна подробная справка; к ней можно обратиться в любой момент, нажав клавишу «?».

Порядок представления действий в первом меню dselect соответствует тому порядку, в котором пользователь обычно выполняет действия для установки пакетов. Однако, любое действие из главного меню пользователь может выбирать как угодно часто (или совсем не выбирать — в зависимости от того, что он хочет сделать).

  • Начните с выбора метода доступа (Access Method). Здесь выбирается способ, с помощью которого пользователь получает доступ к пакетам Debian; например, у некоторых есть компакт-диски с пакетами Debian, другие же скачивают эти пакеты по FTP. Выбранный «метод доступа» сохраняется и после выхода из dselect , поэтому, если он не изменился, то нет необходимости вызывать этот пункт меню каждый раз.
  • Затем обновите (Update) список доступных пакетов. Для этого dselect читает файл «Packages.gz», который находится в верхнем уровне дерева каталогов, в котором хранятся пакеты Debian (если его там нет, dselect предложит его создать).

Для удаления: пакеты можно удалить двумя способами.

  • Удалить (removed): эта команда удаляет большинство файлов принадлежащих пакету, но оставляет файлы, помеченные как настроечные (см. Зачем нужен файл conffile?, раздел 7.5) и информацию о настройке пакета. Выполняется нажатием клавиши «-».
  • Вычистить (purged): команда удаляет все файлы пакета. Выполняется нажатием клавиши «_».

Заметим, что невозможно удалить «все пакеты». Если вы попытаетесь это сделать, то система будет сокращена до первоначально установленных базовых пакетов.

Для «фиксации» Фиксация выполняется нажатием «=», и указывает dselect не выполнять обновление пакета, даже если установленная версия устарела по сравнению с той, что имеется в используемом вами хранилище пакетов Debian (указанном через метод доступа (Access Method), и инициализируемом при выполненииобновления (Update)).

Если пакет зафиксирован, то вернуть его в нормальное состояние можно, нажав «:». Это указывает dselect , что пакет может быть обновлён, если доступна более новая версия. Такая настройка используется по умолчанию.

Вы можете выбирать различный порядок показа пакетов, используя клавишу «o» для переключения между режимами сортировки. Изначально пакеты отсортированы по приоритету; в пределах каждого приоритета пакеты представлены в порядке появления в каталоге (также называемого разделом), в котором они хранятся. При задании такого порядка сортировки, сначала могут отображаться пакеты из раздела A (как пример), потом какие-то из раздела B, а за ними ещё пакеты (с меньшим приоритетом) из раздела A.

Также можно получить описание значений меток в верхней части экрана, нажав клавишу «v». Данное действие увеличивает объём выводимого текста, и он выходит за правую границу экрана. Для прокрутки текста можно пользоваться клавишами со стрелками вправо и влево.

  • Возвратившись после выбора пакетов в главное меню, вы можете выбрать «Установить» (Install) для установки и настройки выбранных пакетов. Если вы отметили пакеты для удаления, то можете выбрать пункт «Удалить» (Remove). В любой момент времени можно выбрать пункт «Выход» (Quit) для выхода из dselect; при этом выбор пакетов, отмеченных для установки и удаления, dselect сохранит.

8.1.6.2 dpkg-deb

Данная программа позволяет манипулировать файлами-архивами Debian (

.deb файлами). Часто используемые команды:

foo_VVV-RRR.deb в каталог

Учтите, что любые пакеты, просто распакованные командой

Дополнительную информацию можно найти в справочной странице dpkg-deb(1) .

8.1.6.3 dpkg-split

Эта программа делит большие пакеты на файлы меньшего размера (например, для записи на дискеты), а также может использоваться для объединения набора разделённых файлов обратно в один файл. Она может использоваться только в системах Debian (т. е. в системах, содержащих пакет dpkg ), т. к. вызывает программу

dpkg-deb для разделения файла пакета на отдельные компоненты.

Например, для того чтобы разделить большой .deb файл на N частей, нужно:

8.2 Говорят, что Debian способен обновить работающую программу; как это делается?

Ядро (файловая система) в системах Debian GNU/Linux поддерживает замену файлов, даже когда они используются.

Мы также предоставляем программу start-stop-daemon , которая используется для запуска служб при загрузке компьютера или их останова при изменении уровня выполнения (например, при переключении из многопользовательского в однопользовательский или для выключения компьютера). Эта же программа используется сценариями установки при установке нового пакета со службой, для остановки работающей службы и её перезапуска при необходимости.

8.3 Как узнать, какие пакеты установлены в системе Debian?

Чтобы получить список всех установленных пакетов, выполните команду

Эта команда выведет для каждого пакета однострочную сводку, включающую два символа состояния (объясняемые в заголовке), имя пакета, установленную версию и краткое описание.

Чтобы узнать состояние пакетов, имена которых начинаются с «foo», выполните команду:

Чтобы получить более подробный отчёт о состоянии определённого пакета, выполните команду:

8.4 Как посмотреть список файлов установленного пакета?

Чтобы вывести список файлов установленного пакета

foo , выполните команду

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

8.5 Как определить пакет, которому принадлежит определённый файл?

Чтобы определить, в каком пакете содержится файл с именем

foo , выполните одну из следующих команд:

имя_файла в установленных пакетах. (Это, в настоящий момент, эквивалентно поиску всех файлов с расширением

.list в каталоге

/var/lib/dpkg/info/ и выводу имён всех пакетов, которые содержат заданное имя файла и отклонения (diversions).)

Более быстрая альтернатива этому — программа dlocate .

Contents-ARCH.gz (где ARCH представляет нужную архитектуру) расположены в основных каталогах пакетов (main, non-free, contrib) на FTP-сайте Debian (то есть, в

Contents относится только к тем пакетам, что расположены в структуре подкаталогов того же каталога, где находится и он сам. Поэтому, чтобы найти пакет, содержащий файл

foo , пользователю нужно искать более чем в одном файле

Преимущество этого метода над

foo . Преимущество этой команды перед приведёнными ранее в том, что вам не нужно будет получать файлы

Contents-ARCH.gz , так как это будет сделано автоматически для всех источников, описанных в /etc/apt/sources.list , при запуске (с правами суперпользователя) команды

8.6 Почему при удалении «foo» не удаляется «foo-data»? Как вычистить старые неиспользуемые пакеты библиотек?

Некоторые пакеты разделены на программы («foo») и данные («foo-data») (или на «foo» и «foo-doc»). Так в Debian сделано для многих игр, мультимедийных приложений и словарей, и объясняется это тем, что некоторым пользователям может быть нужно получить только данные без установки программ, или эти программы могут работать без данных, что делает их установку необязательной.

Подобное относится и к библиотекам: обычно они устанавливаются, так как пакеты приложений зависят от них. Когда пакет приложения вычищается, пакет библиотеки может остаться в системе. Или когда пакет приложения больше не зависит, скажем, от libdb4.2, а зависит от libdb4.3, то пакет libdb4.2 может остаться в системе при обновлении пакета приложения.

В таких случаях «foo-data» не зависит от «foo», поэтому при удалении пакета «foo» большинство инструментов управления пакетами не станет удалять его автоматически. То же самое относится и к пакетам библиотек. Это необходимо для избежания циклических зависимостей. Тем не менее, если для управления пакетами вы используете программу aptitude (см. aptitude, раздел 8.1.3), то она отслеживает автоматически устанавливаемые пакеты и удаляет их, когда в системе не остаётся пакетов, от них зависящих.

Управление пакетами в Debian: 1 комментарий

Чистого эксперимента не проводил, смотрел на одном из доступных серваков — было похоже на правду, доверился хакерам из рассылки — убеждали меня что только под убунтой криво работает. Если есть сомнения, тогда проведу эксперимент Проверил на чистой установке Debian 6.0.5 — сразу после установки эта команда выдаёт кучу пакетов, так что вы правы — не то, поправил статью, благодарю за бдительность

В этом руководстве мы объясним, как составить список и отфильтровать установленные пакеты в Debian. Мы также покажем вам, как проверить, установлен ли конкретный пакет, подсчитать установленные пакеты и узнать версию установленного пакета.

Знание того, как составить список установленных пакетов в вашей системе на основе Debian, может быть полезно в ситуациях, когда вам нужно установить те же пакеты на другой компьютер или если вы хотите переустановить свою систему.

Список установленных пакетов с помощью Apt

Чтобы вывести список всех пакетов, установленных в вашей системе, выполните следующую команду:

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

Поскольку список пакетов длинный, рекомендуется передать вывод по конвейеру команде less чтобы его было легче читать:

Чтобы узнать, установлен ли конкретный пакет, используйте команду grep для фильтрации вывода. Например, чтобы узнать, установлен ли пакет tmux в системе, введите:

Приведенный выше вывод показывает, что в вашей системе установлен tmux 2.3-4.

Список установленных пакетов с помощью dpkg-query

Чтобы получить список всех установленных пакетов, введите:

Команда отобразит список всех установленных пакетов, включая версии пакетов, архитектуру и краткое описание.

Вы можете отфильтровать вывод dpkg-query -l с помощью команды grep :

Создайте список всех установленных пакетов

Следующая команда сохранит список всех установленных пакетов в вашей системе Debian в файле с именем packages_list.txt :

Теперь, когда у вас есть список, вы можете установить те же пакеты на новый сервер с помощью:

Подсчитайте количество установленных пакетов

Чтобы узнать, сколько пакетов установлено в вашей системе, вы можете использовать ту же команду, что и при создании списка пакетов, но вместо перенаправления вывода в файл вы можете передать его команде wc для подсчета строк:

Вывод покажет количество установленных пакетов:

Выводы

В этом руководстве вы узнали, как составлять список и фильтровать установленные пакеты в вашей системе Debian.

Иногда возникают ситуации, когда нужно узнать какие пакеты установлены в системе. Это может понадобиться если вы хотите сделать резервную копию установленных пакетов, проверить их целостность, перенести все пакеты в другую систему и для решения многих других задач. В Debian для этого можно использовать несколько методов.

В сегодняшней статье мы рассмотрим как посмотреть список установленных пакетов Debian с помощью терминала, в интерфейсе curses, а также в графическом интерфейсе. Такие списки можно использовать не только для резервного копирования, но и для того, чтобы просто перебрать и удалить ненужные программы, тем самым очистив систему от мусора.

Список установленных пакетов Debian

Самый первый способ посмотреть установленные пакеты Debian, это утилита dpkg. Она может применяться не только в Debian, а во всех, основанных на нем дистрибутивах:

dpkg --get-selections | grep -v deinstall


Полученный список можно сразу же сохранить в файл, чтобы потом его использовать:

dpkg --get-selections | grep -v deinstall > mylist.txt


Можно также убрать всю лишнюю информацию и сохранить только имена пакетов:

dpkg -l | grep ^ii | awk '< print $2>' > mylist.txt


Следующий способ решения этой задачи - использование утилиты dpkg-query. Она похожа на предыдущий вариант, но немного проще. Такая команда отобразит все установленные пакеты вместе с информацией о них:


Здесь тоже можно выбрать только имена пакетов с помощью опции -f:


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

apt list --installed


Далее, можно отфильтровать только пакеты, имя которых содержит определенные символы:

apt list --installed | grep python


Мы более подробно рассматривали apt в статье установка пакетов в Debian. Еще одна интересная возможность apt - посмотреть какие пакеты были установлены вручную. Для этого наберите:


И еще один вариант с использованием apt:

Утилита для управления пакетами aptitude тоже позволяет вывести список установленных пакетов:


Также aptitude может работать в режиме curses, что очень удобно:


Последний способ посмотреть список установленных пакетов - это файл /var/lib/apt/extended_states. Это база данных, в которой содержится установленные программы debian в таком формате:


Восстановление списка установленных пакетов

Многие пользователи создают список пакетов не просто чтобы посмотреть, а для будущего восстановления. Если вы делали список с помощью dpkg, то его можно очень просто восстановить в системе с помощью аналогичной команды:

sudo dpkg --clear-selections
$ sudo dpkg --set-selections < mylist.txt

Все очень просто. Чтобы установить пакеты после добавления их в список используйте команду:

sudo apt dselect-upgrade

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

xargs < mylist.txt apt install -y

Выводы

В этой статье мы рассмотрели как посмотреть список установленных пакетов Debian. Это может быть очень полезно и выполняется достаточно просто. Надеюсь, эта информация была полезной для вас.

На завершение видео про установку и удаление пакетов:

А теперь то что не очевидно или требует полного прочтения документации

1. Как после update посмотреть какие пакеты будут обновлены?

также можно юзать (если поставить)

но после его установки точно также будет себя вести и обычный update

2. Как узнать что изменилось в пакетах которые будут обновлены?
Можно пробовать

для каждого пакета.
Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить

3. Что делать если обновление что-то поломало и нужно откатиться?
Отката нет, можно попробовать найти предыдущую версию пакета

и установить её

4. Как найти все пакеты установленные вручную?
есть вариант команды (aptitude search '

M'), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов

но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить

5. Как посмотреть список файлов в пакете?
если пакет установлен

для любых пакетов поставить apt-file и

6. Как посмотреть какому пакету принадлежит файл?

7. Как удалить все пакеты, где есть key в названии пакета?

8. Как удалить оставшиеся конфиги от удалённых пакетов?

9. Как найти пакет пакет, в котором содержится файл lib.so:

10. Как сконвертировать rpm пакет в deb?

11. Как найти список установленных ядер?

12. Как установить пакет из testing или experimental?
На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть

13. Как удалить метапакет, но оставить одну из зависимостей?
придётся почитать документацию про ключ unmarkauto или глянуть сюда.

14. Как узнать что попало в файловую систему мимо системы управления пакетами?
Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт

16. Что есть ещё?
apt-cdrom
apt-spy
auto-apt. заметка на хабре
apt-key
apt-add-repository
Некоторые вещи умеет только apt-get
Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит.

17. Как найти пакеты зависящие от данного

также может пригодится


Благодарю всех кто помог своими советами в рассылке, жж (JackYF) и хабре ( run4way, sledopit, nazarpc, AgaFonOff, amarao, traaance, adrianopol, Karamax). Замечания и дополнения приветствуются.

8.1. Какие программы для управления пакетами имеются в Debian?

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

Важно понимать, что высокоуровневые инструменты управления пакетами, такие как aptitude или synaptic , для управления пакетами используют apt , который, в свою очередь, использует dpkg для управления пакетами системы.

See Chapter 2. Debian package management of the Debian reference for more information about the Debian package management utilities. This document is available in various languages and formats, see the Debian Reference entry in the DDP Users' Manuals overview.

8.1.1. dpkg

Это основная программа управления пакетами. dpkg может вызываться с многими параметрами. Наиболее часто используемые из них:

Показать список всех параметров: dpkg --help

Показать управляющий файл (и другую информацию) для указанного пакета: dpkg --info foo_VVV-RRR.deb

Установить пакет на жёсткий диск (т. е. распаковать и настроить): dpkg --install foo_VVV-RRR.deb

Распаковать архив Debian на жёсткий диск (но не настраивать): dpkg --unpack foo_VVV-RRR.deb . Учтите, что в результате данной операции пакет не обязан быть в рабочем состоянии; для правильной работы может потребоваться внесение изменений в некоторые файлы. Данная команда удаляет любую ранее установленную версию программы и запускает сценарий preinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»).

Настроить пакет, который был распакован ранее: dpkg --configure foo . Кроме всего прочего, эта команда запускает сценарий postinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»). Она также обновляет файлы, перечисленные в conffiles . Обратите внимание, что в качестве аргумента для параметра configure указывается имя пакета (т. е. foo), а не имя файла-архива Debian (т. е. foo_VVV-RRR.deb).

Распаковать файл с именем "blurf" (или группу файлов с именем "blurf*") из архива Debian: dpkg --fsys-tarfile foo_VVV-RRR.deb | tar -xf - 'blurf*'

Удалить пакет (но не его файлы настроек): dpkg --remove foo

Удалить пакет (вместе с файлами настроек): dpkg --purge foo

Вывести состояние установки пакетов, содержащих в имени строку (или регулярное выражение) «foo*»: dpkg --list 'foo*'

8.1.2. APT

APT is the Advanced Package Tool , an advanced interface to the Debian packaging system which provides the apt-get program. It provides commandline tools for searching and managing packages, and for querying information about them, as well as low-level access to all features of the libapt-pkg library. For more information, see the User's Guide in /usr/share/doc/apt-doc/guide.html/index.html (you will have to install the apt-doc package).

Starting with Debian Jessie, some frequently used apt-get and apt-cache commands have an equivalent via the new apt binary. This means some popular commands like apt-get update , apt-get install , apt-get remove , apt-cache search , or apt-cache show now can also be called simply via apt , say apt update , apt install , apt remove , apt search , or apt show . The following is an overview of the old and new commands:

Инструмент apt совмещает функциональность apt-get и apt-cache, а также по умолчанию использует красивый цветной формат вывода, что очень удобно. Для использования в сценариях или для продвинутого использования предпочтительнее использовать apt-get (а иногда он просто необходим).

apt-get provides a simple way to retrieve and install packages from multiple sources using the command line. Unlike dpkg , apt-get does not understand .deb files, it works with the packages proper name and can only install .deb archives from a source specified in /etc/apt/sources.list . apt-get will call dpkg directly after downloading the .deb archives [5] from the configured sources.

Часто используемые команды apt-get :

To update the list of packages known by your system, you can run:

(вы должны регулярно запускать эту команду для обновления списка пакетов)

Установить пакет foo и все его зависимости:

Удалить пакет из системы:

Удалить из системы пакет и все его файлы настроек:

To list all packages for which newer versions are available, run:

Обновить все пакеты в системе (без установки дополнительных пакетов или удаления пакетов):

Обновить все установленные в системе пакеты с установкой или удалением дополнительных пакетов, если это потребуется для обновления какого-то пакета:

(Команда upgrade оставит старую установленную версию пакета, если для разрешения новых зависимостей при обновлении потребуется установка дополнительных пакетов. Команда full-upgrade менее консервативна.)

Note that you must be logged in as root to perform any commands that modify packages.

Note that apt-get now also installs recommended packages as default, and thanks to its robustness it's the preferred program for package management from console to perform system installation and major system upgrades.

В комплект инструментов apt входит также программа для обработки запросов по списку пакетов apt-cache . Её можно использовать для поиска пакетов, имеющих определённую функциональность, с помощью простых текстовых запросов или регулярных выражений, а также для получения списка зависимостей из системы управления пакетами. Часто используемые команды apt-cache :

Найти пакеты, содержащие в своём описании слово :

Показать подробную информацию о пакете:

Показать зависимости пакета:

To print detailed information on the versions available for a package and the packages that reverse-depends on it:

For more information, install the apt package and read apt (8) , apt-get (8) , sources.list (5) and install the apt-doc package and read /usr/share/doc/apt-doc/guide.html/index.html .

8.1.3. aptitude

aptitude — это менеджер пакетов для систем Debian GNU/Linux, он предоставляет интерфейс к инфраструктуре управления пакетами apt. aptitude представляет собой текстовый интерфейс на основе библиотеки curses. Действия можно выполнять как из визуального интерфейса, так и из командной строки.

aptitude может использоваться для лёгкого и быстрого выполнения задач по управлению пакетами. Она позволяет пользователю просматривать список пакетов и выполнять такие задачи по управлению пакетами как установка, обновление и удаление.

Помимо функциональности apt-get , aptitude имеет много других дополнительных возможностей:

обеспечивает лёгкий доступ ко всем версиям пакета;

позволяет легко отслеживать устаревшее ПО, занося его в «список устаревших пакетов и пакетов, созданных локально»;

включает достаточно мощную систему поиска и ограничения отображаемых пакетов. Пользователи, знакомые с mutt , освоятся быстро, так как синтаксис регулярных выражений был навеян этой программой;

можно использовать для установки заранее сформированных наборов для определённых задач. Подробности см. в Раздел 8.1.5, «tasksel»;

aptitude in full screen mode has su functionality embedded and can be run by a normal user. It will call su (and ask for the root password, if any) when you really need administrative privileges.

С aptitude можно работать, используя визуальный интерфейс (просто запустить aptitude ), или непосредственно из командной строки. Используемый синтаксис командной строки очень похож на синтаксис apt-get . Например, для установки пакета foo , можно выполнить aptitude install foo .

Note that aptitude is the preferred program for daily package management from the console.

For more information, read the manual page aptitude (8) and install the aptitude-doc package.

8.1.4. synaptic

synaptic is a graphical package manager. It enables you to install, upgrade and remove software packages in a user friendly way. Along with most of the features offered by aptitude, it also has a feature for editing the list of used repositories, and supports browsing all available documentation related to a package. See the Synaptic Website for more information.

8.1.5. tasksel

Иногда бывает трудно найти подходящий комплект пакетов для выполнения определённой задачи. Разработчики Debian определили задачи , представляющие собой наборы из нескольких пакетов Debian, предназначенных для определённой деятельности. Задачи можно устанавливать с помощью программы tasksel или aptitude .

Typically, the Debian installer will automatically install the task associated with a standard system and a desktop environment. The specific desktop environment installed will depend on the CD/DVD media used, most commonly it will be the GNOME desktop ( gnome-desktop task). Also, depending on your selections throughout the installation process, tasks might be automatically installed in your system. For example, if you selected a language other than English, the task associated with it will be installed automatically too and if the installer recognises you are installing on a laptop system the laptop task will also be installed.

8.1.6. Другие инструменты управления пакетами

8.1.6.1. dpkg-deb

Вывести список допустимых параметров: dpkg-deb --help

Определить, какие файлы содержатся в файле-архиве Debian: dpkg-deb --contents foo_VVV-RRR.deb )

Извлечь файлы из указанного архива Debian в определённый пользователем каталог: dpkg-deb --extract foo_VVV-RRR.deb tmp извлечёт все файлы из foo_VVV-RRR.deb в каталог tmp/ . Это удобно для просмотра содержимого пакета в отдельном каталоге без его установки в основное дерево каталогов.

Извлечь из пакета файлы с управляющей информацией: dpkg-deb --control foo_VVV-RRR.deb tmp .

Учтите, что любые пакеты, просто распакованные командой dpkg-deb --extract , будут установлены некорректно, для установки следует использовать dpkg --install .

More information is given in the manual page dpkg-deb (1) .

8.2. Говорят, что Debian способен обновить работающую программу; как это делается?

Ядро (файловая система) в системах Debian GNU/Linux поддерживает замену файлов, даже когда они используются.

Мы также предоставляем программу start-stop-daemon , которая используется для запуска служб при загрузке компьютера или их останова при изменении уровня выполнения (например, при переключении из многопользовательского в однопользовательский или для выключения компьютера). Эта же программа используется сценариями установки при установке нового пакета со службой, для остановки работающей службы и её перезапуска при необходимости.

8.3. Как узнать, какие пакеты установлены в системе Debian?

Чтобы получить список всех установленных пакетов, выполните команду

Эта команда выведет для каждого пакета однострочную сводку, включающую два символа состояния (объясняемые в заголовке), имя пакета, установленную версию и краткое описание.

To learn the status of packages whose names match any pattern beginning with "foo", run the command:

Чтобы получить более подробный отчёт о состоянии определённого пакета, выполните команду:

8.4. How do I display the files of an installed package?

Чтобы вывести список файлов установленного пакета foo , выполните команду

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

8.5. Как определить пакет, которому принадлежит определённый файл?

Чтобы определить, в каком пакете содержится файл с именем foo , выполните одну из следующих команд:

dpkg --search foo

Эта команда ищет foo в установленных пакетах. (В настоящий момент это эквивалентно поиску всех файлов с расширением .list в каталоге /var/lib/dpkg/info/ и выводу имён всех пакетов, которые содержат заданное имя файла, и отклонений.)

Более быстрая альтернатива этому — программа dlocate .

zgrep foo Contents-ARCH.gz

Эта команда ищет файлы, содержащие в своих полных именах путей подстроку foo . Файлы Contents-ARCH.gz (где ARCH представляет нужную архитектуру) расположены в основных каталогах пакетов (main, non-free, contrib) на FTP-сайте Debian (то есть, в /debian/dists/buster ). Файл Contents относится только к тем пакетам, что расположены в структуре подкаталогов того же каталога, где находится и он сам. Поэтому, чтобы найти пакет, содержащий файл foo , пользователю нужно искать более чем в одном файле Contents .

Преимущество этого метода над dpkg --search состоит в том, что будут найдены файлы в тех пакетах, которые могут быть не установлены в вашей системе.

apt-file search foo

If you install the apt-file package, similar to the above, it searches files which contain the substring or regular expression foo in their full path names. The advantage over the example above is that there is no need to retrieve the Contents-ARCH.gz files as it will do this automatically for all the sources defined in /etc/apt/sources.list when you run (as root) apt-file update .

8.6. Why is `foo-data' not removed when I uninstall `foo'? How do I make sure old unused library-packages get purged?

Some packages are split in program (`foo') and data (`foo-data') (or in `foo' and `foo-doc'). This is true for many games, multimedia applications and dictionaries in Debian and has been introduced since some users might want to access the raw data without installing the program or because the program can be run without the data itself, making `foo-data' optional.

Подобное относится и к библиотекам: обычно они устанавливаются, так как пакеты приложений зависят от них. Когда пакет приложения вычищается, пакет библиотеки может остаться в системе. Или когда пакет приложения больше не зависит, скажем, от libdb4.2, а зависит от libdb4.3, то пакет libdb4.2 может остаться в системе при обновлении пакета приложения.

In these cases, `foo-data' doesn't depend on `foo', so when you remove the `foo' package it will not get automatically removed by most package management tools. The same holds true for the library packages. This is necessary to avoid circular dependencies. However, if you use apt-get (see Раздел 8.1.2, «APT») or aptitude (see Раздел 8.1.3, «aptitude») as your package management tool, they will track automatically installed packages and give the possibility to remove them, when no packages making use of them remain in your system.

[5] Notice that there are ports that make this tool available with other package management systems, like Red Hat package manager, also known as rpm

Читайте также: