我怀疑安装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
再次显示这些依赖项!
为什么仍然安装这些依赖项?
答案1
请注意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
答案2
依赖关系如下不是仍安装。
当你跑步时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
命令中。