为什么删除gnome-core不能删除所有依赖项?


9

gnome-core在Ubuntu上安装了软件包(beagle骨头的最低版本),它几乎是600mb。但是,当我尝试使用来卸载它时

sudo apt-get autoremove gnome-core 

它仅删除49 MB。任何想法,如何删除整个600 MB?

Answers:


15

gnome-core 是一个meta包,而meta包的情况是-

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

因此,除非您复制了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)

希望这可以帮助!


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

删除主软件包时,如何卸载拉出的软件包?

当您安装一个软件包并且该软件包依赖于某些其他软件包时,依赖软件包也将被安装并标记为auto。这意味着,Apt系统将它们标记为“ 自动安装”为另一个软件包的依赖项。它有助于Apt系统识别不必要的软件包。

当您卸载主软件包时,拉出的软件包在系统中也被标记为过时或不必要的软件包。您可以通过提供autoremove选项来删除它们apt-get(智能会自动将其与主软件包一起删除)

此规则的例外情况是,如果以后安装另一个也取决于拉出的软件包的软件包,则在删除第一个主软件包时,拉出的软件包将不会被标记为已过时。

示例:您安装了X依赖于package的软件包Y。安装后XY还会被安装并标记为自动。如果您没有安装Z也依赖于的另一个软件包Y,则删除X将渲染render Y的作用,而Apt系统会将其标记为已过时,您可以使用autoremove选项将其删除。

但是,如果你安装一个软件包Z之后X,其也取决于Y,那么只有删除X不标记Y为过时的包,你不能将其删除autoremove选项

但是请注意,如果Y在安装后删除软件包X,它将删除Y包括在内的软件包X,因为X不能离开Y并且您想要删除Y,这意味着您也想要删除X。Apt在删除X时会自动删除,Y而不是将其标记为过时的autoremove选项(以后再删除)。

试用示例: ubuntu-desktop package是一个meta包。它用于安装标准的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本身是另一个meta包。由于meta软件包仅用于提取软件包,因此安装它们不会将提取的软件包标记为auto,它们会标记为手动安装。结果?仅删除主元数据包不会将拉出的数据包标记为过时,并且您不能通过autoremove选项将其删除。这就是为什么您需要手动删除meta包中每个拉出的包的原因。

示例:您安装了一个X依赖于Y和的元软件包Z。安装时,YZ软件包未标记为auto (自动安装为另一个软件包的依赖项),而是标记为手动安装。在以后要删除时X,仅删除虚拟X包。两者,Y并且Z,保留在系统中,你不能卸载它们autoremove的选项。


那很麻烦。但是我想这是唯一的出路吗?
开发人员Android

您确定这对您apt-cache depends有用吗?我觉得tijybba建议的方式更适合此目的。

@Sab据我所知,是的。
Anwar

@ vasa1问题是我正在运行beagle骨骼,甚至在使用vnc查看器时也几乎没有gui
开发人员Android

@Sab我添加了另一条命令以在一行中获取列表。
Anwar

2

安装gnome-core会带来很多软件包和依赖项,因为它是meta-package。

一种方法是手动删除它,但是您应该知道哪些包需要删除而不会引起任何后效错误。

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

转到Synaptic管理器 (如果不存在,请安装它),单击“ 左下选择来源”,然后单击图像

在此处输入图片说明

通过参考以上链接,选择要删除的软件包。

警告 如果您不知道要删除哪些软件包,那就不要遵循这种方法。这些可能会导致依赖项错误


2

介绍:

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

删除和配置文件,但不使用apt-get进行依赖

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

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

sudo apt-get --purge autoremove

在Ubuntu 12.04中安装GNOME时,它将安装它需要的几个软件包和库以及一些可选软件包。卸载GNOME时,并非所有这些软件包和库都将被卸载。某些软件包(例如主显浏览器和gnuchess)不会被卸载。快速卸载

不建议这样做,因为它会删除通常与GNOME一起安装的所有软件包。这可能包括您先前安装的软件包(例如主显浏览器或食指)或其他应用程序先前安装的软件包。

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

只需按键盘上的Ctrl+ Alt+ T打开终端。打开时,运行以下命令。(很长,一行)

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.