Зависимости по-прежнему существуют в «dpkg -l» после выполнения «apt-get remove dependencies-names»

Я подозревал, что установка xfce4 вызывает некоторые проблемы в Ubuntu, поэтому я удалил их, используя apt-get remove xfce4 xfce4-goodeis.

Но когда я запустил 'dpkg -l', я все еще вижу некоторые библиотеки и пакеты для xfce4 :

$ dpkg -l | grep -i xfce
rc  libexo-1-0:amd64                              0.10.2-2                                 amd64        Library with extensions for Xfce
rc  libgarcon-1-0                                 0.2.1-1                                  amd64        freedesktop.org compliant menu implementation for Xfce
rc  libxfce4ui-1-0                                4.11.0-0ubuntu1~ppa0.13.10.1             amd64        widget library for Xfce - Gtk+2 variant
rc  libxfce4ui-common                             4.11.0-0ubuntu1~ppa0.13.10.1             all          common files for libxfce4ui
rc  libxfce4util6                                 4.10.1-1                                 amd64        Utility functions library for Xfce4
rc  libxfcegui4-4                                 4.10.0-2                                 amd64        Basic GUI C functions for Xfce4
rc  libxfconf-0-2                                 4.10.0-2                                 amd64        Client library for Xfce4 configure interface
rc  mousepad                                      0.3.0-2                                  amd64        simple Xfce oriented text editor
rc  thunar                                        1.6.3-1ubuntu1                           amd64        File Manager for Xfce
rc  xfce4-appfinder                               4.10.1-1                                 amd64        Application finder for the Xfce4 Desktop Environment
rc  xfce4-clipman                                 2:1.2.3-2ubuntu1                         amd64        clipboard history utility
rc  xfce4-mixer                                   1:4.10.0-1ubuntu2                        amd64        Xfce mixer application
rc  xfce4-notes                                   1.7.7-3ubuntu2                           amd64        Notes application for the Xfce4 desktop
rc  xfce4-panel                                   4.10.1-1ubuntu1                          amd64        panel for Xfce4 desktop environment
rc  xfce4-power-manager                           1.2.0-2ubuntu1                           amd64        power manager for Xfce desktop
rc  xfce4-session                                 4.10.1-1ubuntu1                          amd64        Xfce4 Session Manager
rc  xfce4-settings                                4.11.1-0ubuntu1~ppa0.13.10.1             amd64        graphical application for managing Xfce settings
rc  xfce4-terminal                                0.6.2-3ubuntu1.1                         amd64        Xfce terminal emulator
rc  xfce4-volumed                                 0.2.0-0ubuntu1                           amd64        volume keys daemon
rc  xfdesktop4                                    4.11.2-0ubuntu1~ppa0.13.10.1             amd64        xfce desktop background, icons and root menu manager
rc  xfwm4                                         4.11.1-0ubuntu1~ppa0.13.10.1             amd64        window manager of the Xfce project

Я скопировал все эти пакеты \ библиотеки, чтобы сформировать Команда apt-get remove для удаления всех этих зависимостей, и команда выполнялась нормально, но запуск dpkg -l | grep -i xfce снова показал эти зависимости!

Почему эти зависимости все еще установлены?

6
задан 26 July 2018 в 19:37

2 ответа

Обратите внимание на rc в начале списка.

r: Удалить (помечен для удаления)
c: имеются файлы конфигурации.

Разница между apt-get remove и purge (из man apt-get)

   remove
       remove is identical to install except that packages are removed instead of installed.
       Note the removing a package leaves its configuration files in system.

   purge
       purge is identical to remove except that packages are removed and purged (any
       configuration files are deleted too).

Когда вы выбираете apt-get remove, ваш dpkg -l отражает это. Если бы вас использовали apt-get purge, вы могли бы избежать такой ситуации. Чтобы избавиться от них, попробуйте в терминале,

dpkg --list | grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

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

dpkg --list | grep "^rc" | cut -d " " -f 3 

Я думаю, у вас нет других пакетов, помеченных для удаления, кроме тех, что из xfce. Если вы не уверены в этом. Вместо этого используйте следующее:

dpkg --list | grep -i xfce | cut -d " " -f 3 | xargs sudo dpkg --purge
0
ответ дан 26 July 2018 в 19:37

Зависимости еще не установлены .

Когда вы запускаете dpkg -l, dpkg звонит dpkg-query . Записи в первом столбце (где вы видите rc) состоят из двух однобуквенных сокращений.

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

  • фактически удалено, либо или
  • было указано для удаления, но еще не полностью удалено или удаление не удалось.

Чтобы увидеть, в чем дело, обратитесь ко второму письму, c. Это указывает на то, что из пакета установлено. Если нет файлов какого-либо вида , вторая буква гласит n (хотя на самом деле, поскольку вы запускаете dpkg -l / dpkg --list без аргументов и затем анализируете выходные данные, запись просто вообще не появляется, если не было файлов).

c означает, что все, что установлено, это конфигурационные файлы . Обычно небезопасно предполагать, что пользователь хочет удалить их при удалении пакета. Если вы хотите удалить их, вы можете передать флаг --purge в apt-get (или указать действие purge вместо действия remove) при удалении пакетов.

Чтобы удалить эти файлы конфигурации, даже если сами пакеты удалены, вы все равно можете удалить их, либо с помощью dpkg -P ... или apt-get purge .... Использование dpkg для очистки многих пакетов может быть несколько сложным , но apt-get будет соответствовать регулярным выражениям (как это делает grep) для имен пакетов. Предполагая, что вам нужна одна короткая команда, которая удаляет все эти пакеты, и * если вы действительно хотите удалить все пакеты с xfce в их именах, это поможет:

sudo apt-get purge xfce.\*

Обратите внимание, что * не является подстановочным знаком, .\* соответствует нулю или более любого символа. . необходимо для этого (см. Ниже). Это регулярное выражение эквивалентно просто xfce, но оно распознается как как регулярное выражение apt-get, потому что оно содержит специальный символ *.

(Точно так же, если вы использовали xfce\* или xfce*, он удалил бы все пакеты с xfc в имени. Люди пытались избавиться от Wine, удалив wine*, в результате чего каждый пакет с win где-нибудь в имени, которое удаляется, нарушая их системы!)

Или, если вы предпочитаете провести чистку с dpkg, легко понятный способ (который, я думаю, таким образом уменьшает количество ошибок) сделать это чтобы сказать dpkg-list, как отформатировать собственный вывод:

sudo dpkg -P `dpkg-query -f='${Package}\n' -W | grep xfce`

Или вы можете просто запустить dpkg-query -f='${Package} ' -W | grep xfce, что позволит вам проверить вывод, чтобы убедиться, что это то, что вам нужно, а затем скопировать и вставить это пространство -лимитный список пакетов в команду sudo apt-get purge или sudo dpkg -P.

0
ответ дан 26 July 2018 в 19:37

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

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