为什么删除 gnome-core 不会删除它的所有依赖项?

为什么删除 gnome-core 不会删除它的所有依赖项?

gnome-core在 Ubuntu 上安装了软件包(Beagle Bone 的最低版本),它有将近 600MB。但是,当我尝试使用

sudo apt-get autoremove gnome-core 

它只删除了 49 MB。有什么想法吗,如何删除全部 600 MB?

答案1

gnome-core是一个元包,元包的情况是——

他们拉取软件包进行安装,但删除它们不会删除所有拉取的软件包

因此,除非您复制了 gnome-core 安装的软件包的名称,否则几乎不可能删除所有 600 MB。

但是,你可以通过以下命令获取拉取的包的名称

apt-cache depends gnome-core 

并尝试逐个删除软件包。您应该始终检查它是否正在删除任何必要的软件包。

或者您可以通过以下更有用的方式获取包列表:

apt-cache depends gnome-core | cut -f 2 -d ':'  | tr '\n' ' '

<>这将列出 gnome-core 包的所有依赖项,仅忽略标记中的包名称。

我如何知道是否有任何系统包被删除?

当你看到命令释放了大量空间时,(超过 600MB),你应该知道你删除的内容比你安装的内容多。apt-get会让你知道有多少空间将被释放,在删除之前,会显示这样的消息

After this operation, 384 kB disk space will be freed.

当您尝试删除必要的系统包时,apt-get将会显示一条警告消息。

推荐:我建议你从第一个命令中获取软件包列表,然后尝试逐个删除它们。这样更安全。如果你看到警告,请跳过删除该软件包。我看到,gnome-core 中的大多数软件包都与 GUI 相关,我猜删除这些软件包不会损害你的系统(如果你不想要 GUI)

希望这可以帮助!


关于删除软件包的一些注意事项

当您删除主包时,拉取的包如何被卸载?

当你安装一个包,并且该包依赖于其他包时,依赖包也会被安装,并且标记为自动。这意味着,Apt 系统将它们标记为作为另一个包的依赖项自动安装. 它帮助 Apt 系统识别不需要的包。

当你卸载主软件包时,拉取的软件包也会在系统中被标记为过时或不必要的软件包。你可以通过提供autoremove选项来删除它们apt-get(aptitude 会自动使用 master 包删除它们)

此规则的一个例外是,如果您稍后安装了另一个也依赖于拉取包的包,则当您删除第一个主包时,拉取的包将不会被标记为过时。

例子:X您安装了一个依赖于软件包 的软件包Y。当您安装 时XY也会被安装并标记为自动。如果您不安装另一个Z也依赖于 的软件包Y,则删除X将使 变得Y毫无用处,Apt 系统会将其标记为过时,您可以使用选项将其删除autoremove

Z但是如果你安装了一个依赖X的包Y,那么删除它X并不会将其标记Y为过时的包,而且你不能用autoremove选项删除它

但请注意如果您Y在安装后删除软件包X,它将删除Y包括 在内的软件包X,因为X没有 就无法保留Y,而您想删除Y,这意味着您也想删除X。 apt 将X在删除时自动删除Y,而不像将其标记为过时以便以后通过autoremove选项删除。

尝试示例: ubuntu-desktop软件包是一个元软件包。它用于安装标准 Ubuntu 桌面。尝试删除它,只会删除该软件包。

还尝试安装lubuntu-desktop(您可能不想安装它,因为它需要很大的下载量)。但是,当您尝试将其移除时,只有微小的包裹lubuntu-desktop会被移除。

Apt 以不同的方式处理元包

gnome-core、ubuntu-restricted-extras 等元包也称为虚拟包。之所以这样称呼它们,是因为它们基本上是空包,它们通过依赖其他包来拉取其他包。例如,ubuntu-restricted-extras 依赖于(在 12.04 中)以下包:

ubuntu-restricted-addons
ttf-mscorefonts-installer
unrar
gstreamer0.10-plugins-bad-multiverse
libavcodec-extra-53

其中,ubuntu-restricted-addons 本身是另一个元包。由于元包仅用于拉取包,因此安装它们不会将拉取的包标记为自动,它们被标记为手动安装。结果呢?仅删除主元包不会将拉出的包标记为过时,并且您无法通过autoremove选项删除它们。这就是为什么您需要手动删除元包的每个拉出的包。

例子:X您安装了一个依赖于软件包Y和 的元软件包Z。安装时,YZ软件包未标记为自动(作为另一个包的依赖项自动安装),而是将其标记为手动安装。稍后当您想删除 时,只会删除X虚拟包。和都保留在系统中,您无法使用选项卸载它们。XYZautoremove

答案2

安装gnome 核心,由于它是元包,因此带来了很多包和依赖项。

其中一种方法是手动删除它,但您应该知道需要删除哪些软件包而不会导致任何后续错误。

所含软件包列表列在此处软件包:gnome-core(1:3.0+6ubuntu3) [universe]

突触管理器 (若不存在则安装), 点击起源从左下角选择,参考图

在此处输入图片描述

参考上面的链接,选择要删除的包。

警告 如果你不知道要删除哪些包,那么按照此方法操作。这些可能会导致依赖错误

答案3

介绍:

要使用命令行完全删除程序,您可以选择以下选项;

使用 apt-get 删除并配置文件,但不删除依赖项

sudo apt-get --purge remove <Package Name>

使用 apt-get 删除未使用的依赖项和配置文件

sudo apt-get --purge autoremove

在 Ubuntu 12.04 中安装 GNOME 时,它会安装所需的几个软件包和库以及一些可选软件包。卸载 GNOME 时,并非所有这些软件包和库都会被卸载。几个软件包(如 epiphany-browser 和 gnuchess)不会被卸载。快速卸载

不建议这样做,因为它会删除通常随 GNOME 安装的所有软件包。这可能包括您之前安装的软件包(如 epiphany-browser 或 gnuchess)或其他应用程序之前安装的软件包。

注意:此卸载命令假定 GNOME 安装在全新的 Ubuntu 12.04 上。1

只需按下键盘上的Ctrl++即可打开终端。打开后,运行以下命令。(它很长,只有一行)AltT

sudo apt-get purge --auto-remove alacarte bogofilter bogofilter-bdb bogofilter-common browser-plugin-gnash cheese  cheese-common cups-pk-helper dconf-tools desktop-base ekiga epiphany-browser  epiphany-browser-data epiphany-extensions evolution evolution-common  evolution-plugins evolution-webcal fonts-cantarell gdebi gdebi-core gdm  gedit-plugins gimp gimp-data gir1.2-accountsservice-1.0 gir1.2-caribou-1.0  gir1.2-clutter-1.0 gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gir1.2-folks-0.6  gir1.2-gdesktopenums-3.0 gir1.2-gee-1.0 gir1.2-gjsdbus-1.0 gir1.2-gkbd-3.0  gir1.2-gucharmap-2.90 gir1.2-json-1.0 gir1.2-mutter-3.0  gir1.2-networkmanager-1.0 gir1.2-panelapplet-4.0 gir1.2-polkit-1.0  gir1.2-telepathyglib-0.12 gir1.2-telepathylogger-0.2 gir1.2-upowerglib-1.0  gir1.2-xkl-1.0 gjs glchess glines gnash gnash-common gnect gnibbles gnobots2  gnome gnome-applets gnome-applets-data gnome-backgrounds gnome-contacts  gnome-core gnome-dictionary gnome-games gnome-games-extra-data  gnome-icon-theme-extras gnome-icon-theme-full gnome-js-common gnome-panel  gnome-panel-data gnome-session-fallback gnome-shell gnome-shell-common  gnome-themes-standard gnome-video-effects gnotravex gnotski gnuchess  gnuchess-book gtali hamster-applet iagno imagemagick imagemagick-common  indicator-applet-complete inkscape libbabl-0.0-0 libblas3gf libbonobo2-0  libbonobo2-common libbonoboui2-0 libbonoboui2-common libboost-iostreams1.46.1  libboost-program-options1.46.1 libboost-signals1.46.1 libboost-thread1.46.1  libcapi20-3 libcaribou-common libcaribou0 libcdt4 libcheese-gtk21 libcheese3  libclutter-1.0-0 libclutter-1.0-common libclutter-gst-1.0-0 libclutter-gtk-1.0-0  libclutter-imcontext-0.1-0 libcluttergesture-0.0.2-0 libcogl-common  libcogl-pango0 libcogl9 libept1.4.12 libevolution libgc1c2 libgdict-1.0-6  libgdict-common libgegl-0.0-0 libgfortran3 libgimp2.0 libgjs0c libglade2-0  libgnome2-0 libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0  libgnomeui-common libgnomevfs2-extra libgraph4 libgsl0ldbl libgtkhtml-4.0-0  libgtkhtml-4.0-common libgtkhtml-editor-4.0-0 libgtkmm-2.4-1c2a libgvc5  libilmbase6 liblapack3gf liblqr-1-0 libmagick++4 libmagickcore4  libmagickcore4-extra libmagickwand4 libmozjs185-1.0 libmusicbrainz4-3 libmutter0  libmx-1.0-2 libnetpbm10 libodbc1 libopal3.10.2 libopenexr6 libpanel-applet--0  libpathplan4 libpst4 libpt2.10.2 libseed-gtk3-0 libwmf-bin liferea liferea-data  lightsoff menu menu-xdg mutter-common netpbm notification-daemon odbcinst  odbcinst1debian2 perlmagick python-gmenu python-gnome2 python-lxml python-numpy  python-pyorbit python-uniconvertor quadrapassel sound-juicer swell-foop synaptic  unixodbc

如何彻底删除软件包的更好方法

1)打开 aptitude 日志文件(/var/log/apt/history.log)。

2)找到已安装的文件。

3)使用1删除文件

sudo apt-get remove --auto-remove <file names>

1来源:如何彻底卸载/删除 GNOME

相关内容