dpkg / apt-get противоречивая информация

Когда я запускаю dpkg -l, я получаю список установленных пакетов, и я сравниваю это с «модельной» системой, которую я пытаюсь воспроизвести. В этом списке появилось несколько пакетов, например emacs23, которые я хочу удалить. Однако, когда я запускаю apt-get remove emacs23, мне говорят, что пакет emacs23 не установлен:

# apt-get -y remove emacs23
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package emacs23 is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 97 not upgraded.

Запуск apt-get update не помог:

Обновленная информация:

# dpkg -l emacs23
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)
||/ Name           Version        Description
+++-==============-==============-============================================
rc  emacs23        23.3+1-1ubuntu The GNU Emacs editor (with GTK+ user interfa

# apt-cache policy emacs23
emacs23:
  Installed: (none)
  Candidate: 23.3+1-1ubuntu9.2
  Version table:
     23.3+1-1ubuntu9.2 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     23.3+1-1ubuntu9.1 0
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     23.3+1-1ubuntu9 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

# dpkg -l | grep emacs23
rc  emacs23                          23.3+1-1ubuntu9.2                   The GNU Emacs editor (with GTK+ user interface)

Как мне разрешить эту очевидную путаницу?

0
задан 13 October 2015 в 16:18

1 ответ

От man dpkg:

   -l, --list [package-name-pattern...]
          List  packages  matching given pattern. If no package-name-pattern is given, list all packages in /var/lib/dpkg/status, excluding the
          ones marked as not-installed (i.e. those which have been previously purged).

Это означает это dpkg-l списки все неочищенные пакеты и не все установленные пакеты;

На самом деле, от man dpkg-query (к который dpkg -l действия как фронтенд):

          Desired action:
            u = Unknown
            i = Install
            h = Hold
            r = Remove
            p = Purge

          Package status:
            n = Not-installed
            c = Config-files
            H = Half-installed
            U = Unpacked
            F = Half-configured
            W = Triggers-awaiting
            t = Triggers-pending
            i = Installed

Что означает это rc в начале средств строки:

  • r: Желаемое действие пакета: "Удалите";
  • c: Состояние пакета: только конфигурационные файлы присутствуют;

Так как Вы хотите воспроизвести существующую систему, пакеты с rc Действие Desisred / комбинация Состояния, которые не появляются в "образцовой" системе, должно быть очищено:

sudo apt-get purge emacs23

Как побочный эффект, те пакеты даже не откроются в dpkg -l больше.

0
ответ дан 14 October 2015 в 02:18
  • 1
    Необходимо смотреть на OP' s история вопроса на здесь и U& L для понимания, что they' ре, пытающееся сделать. Я лично думаю they' ре зафиксировано на конкретном решении и won' t делают что-либо еще, но кто знает? – muru 4 January 2017 в 11:18

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

Похожие вопросы: