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

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

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. Как читать флаги? (потому что объяснение довольно сложное, ИМО)

Благодарю.

4 ответа

Решение

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

Вы можете найти эту информацию в заголовке вывода 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... требуется повторно (пакет поврежден, требуется переустановка)

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

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

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

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

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

man dpkg-query

и не в

man dpkg

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

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

  2. Увидеть man dpkg-query

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

Другие вопросы по тегам