Информация о пакетах

Информация о пакетах

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

$ apt search geany

отыщет одноимённый пакет для установки этого текстового редактора (называемого, однако, «Небольшой и быстрой IDE») и все его плагины:

p   geany                           - Небольшая и быстрая IDE

v   geany-abi-69                    -

v   geany-api-216                   -

p   geany-common                    - Небольшая и быстрая IDE — общие файлы

p   geany-plugin-addons             - Различные дополнительные модули для Geany

p   geany-plugin-codenav            - Модуль навигации по коду для Geany

...

p   geany-plugin-xmlsnippets        - XMLSnippets plugin for Geany

p   geany-plugins                   - Набор плагинов для Geany

p   geany-plugins-common            - Набор плагинов для Geany (переводы)

Важное отличие от аналога — команды apt-cache search: apt search показывает основной пакета (i — установленный, p — не установленный или «чисто» удалённый, и так далее) и дополнительный (A — автоматически установленный, h — с фиксированной версией, и так далее) статусы пакетов.

Внутренняя команда held позволяет отсортировать пакеты с фиксированной версией, то есть те, которые не будут обновляться по команде apt upgrade (о ней буде сказано в следующем разделе).

Подробную информацию об отдельном пакете можно получить с помощью внутренней команды show. Например,

$ apt show geany

выведет следующее:

Пакет: geany

Состояние: не установлен

Версия: 1.23.1+dfsg-1

Приоритет: необязательный

Раздел: universe/devel

Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>

Архитектура: amd64

Размер в распакованном виде: 2671 k

Зависимости: libc6 (>= 2.15), libcairo2 (>= 1.6.0), libgcc1 (>= 1:4.1.1),

                        libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>=

                        2.35.9), libgtk2.0-0 (>= 2.22.0), libpango1.0-0 (>=

                        1.18.0), libstdc++6 (>= 4.1.1), geany-common (=

                        1.23.1+dfsg-1)

Пред-зависимости: multiarch-support

Предлагает: libvte9, doc-base

Конфликтует: geany

Повреждает: geany-plugins-common (< 0.21), geany-plugins-common (< 0.21)

Предоставляет: geany-abi-69, geany-api-216

Описание: Небольшая и быстрая IDE

 Geany — нетребовательная к ресурсам интегрированная среда разработки программ,

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

 использует только GTK2, поэтому для запуска Geany необходимы только

 runtime-библиотеки GTK2.

 

 The basic features of Geany are:

 * syntax highlighting

 * code completion

 * auto completion of constructs like if, for and while, XML and HTML

 * call tips

 * folding

 * many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal

 * symbol lists

 * embedded terminal emulation

Сайт: http://www.geany.org

А сведения о смене версий пакета получаются с помощью внутренней команды changelog. Для Geany это выглядит так:

geany (1.23.1+dfsg-1) unstable; urgency=low

 

  * [3b1ced4] Imported Upstream version 1.23.1+dfsg

  * [b418909] Update debian-branch in gbp.conf

 

 — Chow Loong Jin <hyperair@debian.org>  Mon, 20 May 2013 00:18:56 +0800

 

geany (1.23+dfsg-2) unstable; urgency=low

 

  * Upload to unstable, fixes FTBFS (Closes: #707368)

  * [a472a80] Enable parallel builds

  * [17a6378] No-change bump of Standards-Version to 3.9.4

  * [ea78f31] Add README.source describing git branch structure

 

 — Chow Loong Jin <hyperair@debian.org>  Fri, 10 May 2013 15:27:35 +0800

...

И так далее.

Более подробные, нежели вывод команды show, сведения о зависимостях пакета даёт пара внутренних команд depends и rdepends. Первая выводит полный список пакетов, от которых зависит заданный в качестве её аргумента — жёстких, рекомендуемых, предлагаемых и конфликтующих:

$ apt depends geany

geany

  Зависит: libc6

  Зависит: libcairo2

  Зависит: libgcc1

  Зависит: libgdk-pixbuf2.0-0

  Зависит: libglib2.0-0

  Зависит: libgtk2.0-0

  Зависит: libpango1.0-0

  Зависит: libstdc++6

  Зависит: geany-common

  ПредЗависит: multiarch-support

    multiarch-support:i386

  Предлагает: libvte9

  Предлагает: doc-base

  Ломает: geany-plugins-common

  Ломает: <geany-plugins-common:i386>

  Конфликтует: geany:i386

Команда же rdepends решает обратную задачу — выводит список пакетов, зависящих от данного:

$ apt depends geany

geany

Reverse Depends:

  geany:i386

  geany-plugins-common

  geany-plugins

  geany-plugin-xmlsnippets

  geany-plugin-webhelper

  geany-plugin-vc

  geany-plugin-updatechecker

  geany-plugin-treebrowser

  geany-plugin-tableconvert

  geany-plugin-spellcheck

  geany-plugin-shiftcolumn

  geany-plugin-sendmail

  geany-plugin-scope

  geany-plugin-prj

  geany-plugin-prettyprinter

  geany-plugin-pg

  geany-plugin-numberedbookmarks

  geany-plugin-multiterm

  geany-plugin-miniscript

  geany-plugin-markdown

  geany-plugin-macro

  geany-plugin-lua

  geany-plugin-lipsum

  geany-plugin-latex

  geany-plugin-insertnum

  geany-plugin-gproject

  geany-plugin-geniuspaste

  geany-plugin-gendoc

  geany-plugin-extrasel

  geany-plugin-doc

  geany-plugin-devhelp

  geany-plugin-debugger

  geany-plugin-commander

  geany-plugin-codenav

  geany-plugin-addons

  geany-common

  geany-common

 |deb-gview

Все приведённые выше внутренние команды дают информацию как об установленных пакетах, так и о пакетах, доступных в подключённых репозиториях. А вот команды contains и content работают только для установленных пакетов. Первая позволяет определить, к какому пакету принадлежит данный файл — именно таким способом была определена выше принадлежность утитлиты apt:

$ apt contains /usr/local/bin/apt

mintsystem: /usr/local/bin/apt

А команда content выводит список всех файлов пакета с указанием их положения в файловой иерархии:

$ apt content mintsystem

/.

/etc

/etc/apt

/etc/apt/preferences.d

/etc/apt/preferences.d/official-extra-repositories.pref

/etc/bash_completion.d

/etc/bash_completion.d/apt-linux-mint

/etc/init.d

/etc/init.d/mintsystem

...

/usr/share/nemo

/usr/share/nemo/actions

/usr/share/nemo/actions/mint-md5sum.nemo_action

Наконец, последняя из «информационных» команд — policy. При указании в качестве аргумента имени установленного пакета она выводит такую о нём информацию:

$ apt policy mintsystem

mintsystem:

  Установлен: 7.9.7

  Кандидат:   7.9.7

  Таблица версий:

 *** 7.9.7 0

        700 http://linux-mint.froonix.org/ rebecca/main amd64 Packages

        100 /var/lib/dpkg/status

А для пакета не установленного она будет такой:

$ apt policy geany

geany:

  Установлен: (отсутствует)

  Кандидат:   1.23.1+dfsg-1

  Таблица версий:

     1.23.1+dfsg-1 0

        500 http://gd.tuwien.ac.at/opsys/linux/ubuntu/archive/ trusty/universe amd64 Packages

Где числе перед URL — приоритет репозитория, в который входит пакет, оно берётся из файлов каталога /etc/apt/preferences.d. Большее число соовтетствует более высокому приоритету.

Внутренняя команда policy была придумана для утилиты apt-cache дистрибутива Debian, где использовалась для управления приоритетами при совмещёнии в одной системе пакетов из его многочисленных веток — stable, testing, unstable, experimental. Не уверен, что она востребована в дистрибутиве Mint.