Что означают различные флаги dpkg, такие как «ii» и «rc»?

92

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

dpkg -l | grep foo

который дает следующий вывод

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version         Description
ii   foo                       <version>         <description>
  1. Что iiзначит?
  2. Какие еще флаги есть?
  3. Как читать флаги? (потому что объяснение довольно сложное, ИМО)

Благодарю.

theTuxRacer
источник

Ответы:

127

Где найти эту информацию в системе

Вы можете найти эту информацию в заголовке вывода dpkg -l, так как это просто соглашение о форматировании:

dpkg -l | head -3

Скопировано здесь для справки:

Desired=Unknown/Install/Remove/Purge/Hold                                     
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)                    

Описание каждого поля

Как видно из первых трех строк:

Первая буква -> желаемое состояние пакета («состояние выбора»):

  • ты ... неизвестен
  • я ... установить
  • r ... удалить / удалить
  • p ... purge (удалить, включая файлы конфигурации)
  • ч ... держись

Вторая буква -> текущее состояние пакета:

  • н ... не установлено
  • я ... установлен
  • c ... config-files (установлены только файлы config)
  • U ... распакован
  • F ... наполовину сконфигурирован (конфигурация по какой-то причине не удалась)
  • h ... наполовину установлен (установка по какой-то причине не удалась)
  • W ... triggers-awated (пакет ожидает триггера из другого пакета)
  • t ... ожидание триггера (пакет был запущен)

Третья буква -> состояние ошибки (обычно вы не должны видеть третью букву, а пробел):

  • R ... требуется повторно (пакет поврежден, требуется переустановка)
htorque
источник
2
(Вертикальные полосы и косые черты во второй, третьей и четвертой строке заголовка являются «стрелками», указывающими на первый, второй и третий столбцы, чтобы помочь вам расшифровать то, что htorque объяснил более подробно.)
Ubuntourist
1
где я могу прочитать этот список? Я попробовал man dpkg, но его там не было.
Фабрицио Реджини
1
@FabrizioRegini Попробуйте еще раз, он находится вверху справочной страницы dpkg (раздел «ИНФОРМАЦИЯ О ПАКЕТАХ»). :)
hrque
Где на странице руководства dpkg показано значение «ii», «if» и т. Д.?
pmatulis
2
@FabrizioRegini Run man dpkg-query.
Ярно
27

Первая буква отображает ожидаемый статус пакета.
Вторая буква отображает текущий статус пакета.

Так, например:

iiозначает «Он должен быть установлен и установлен», тогда как
rcозначает «Он удален / удален, но его файлы конфигурации все еще там»

Павлос Г.
источник
1
Так безопасно ли удалять файлы конфигурации ядра с тегом rc?
Марс Ли
10

Поскольку у меня низкий представитель, я не могу комментировать, чтобы ответить на вопросы людей о том, где можно получить эту информацию. Изучив исходный код для файла main.c dpkg и связанных программ, я нашел то, что искал.

Информация для чтения -l | --list вывод находится в

man dpkg-query

и не в

man dpkg

dpkg просто выступает в качестве внешнего интерфейса в этих случаях

Кертис М
источник
1
  1. Это означает, что пакет должен быть установлен и пакет установлен.

  2. Видеть man dpkg-query

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

Ярно
источник