![为什么删除 gnome-core 不会删除它的所有依赖项?](https://linux22.com/image/1110922/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%88%A0%E9%99%A4%20gnome-core%20%E4%B8%8D%E4%BC%9A%E5%88%A0%E9%99%A4%E5%AE%83%E7%9A%84%E6%89%80%E6%9C%89%E4%BE%9D%E8%B5%96%E9%A1%B9%EF%BC%9F.png)
我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
。当您安装 时X
,Y
也会被安装并标记为自动。如果您不安装另一个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
。安装时,Y
和Z
软件包未标记为自动(作为另一个包的依赖项自动安装),而是将其标记为手动安装。稍后当您想删除 时,只会删除X
虚拟包。和都保留在系统中,您无法使用选项卸载它们。X
Y
Z
autoremove
答案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