Dev*_*oid 10 uninstall apt metapackages
我gnome-core
在 Ubuntu(小猎犬骨骼的最小版本)上安装了软件包,它几乎是 600mb。但是,当我尝试使用
sudo apt-get autoremove gnome-core
Run Code Online (Sandbox Code Playgroud)
它仅删除 49 MB。任何想法,如何删除整个 600 MB?
Anw*_*war 16
gnome-core
是一个元包,元包的情况是——
他们拉取软件包来安装,但删除它们不会删除所有拉取的软件包。
因此,除非您复制了 gnome-core 安装的软件包的名称,否则几乎不可能删除所有 600 MB。
但是,您可以通过命令获取拉取包的名称
apt-cache depends gnome-core
Run Code Online (Sandbox Code Playgroud)
并尝试将包裹一一取出。您应该始终检查它是否正在删除任何必要的包。
或者您可以通过以下方式以更有用的方式获取软件包列表:
apt-cache depends gnome-core | cut -f 2 -d ':' | tr '\n' ' '
Run Code Online (Sandbox Code Playgroud)
这将列出 gnome-core 包的所有依赖项,仅忽略<>
标记中的包名。
当您看到命令释放了大量空间(超过 600MB)时,您应该知道您删除的空间多于安装的空间。apt-get
会让你知道有多少空间将被释放,然后用这样的消息删除
After this operation, 384 kB disk space will be freed.
Run Code Online (Sandbox Code Playgroud)
并且当您尝试删除必要的系统包时,apt-get
会显示一条警告消息。
建议:建议您从第一个命令中获取一个包列表,并尝试将它们一个一个删除。它更安全。如果您看到警告,请跳过删除该包。我明白了,gnome-core 中的大多数软件包都与 GUI 相关,我想删除这些软件包不会损害您的系统(如果您不想要 GUI)。
希望这可以帮助!
当您安装一个包并且该包依赖于其他一些包时,依赖包也会被安装并标记为 auto。这意味着,Apt 系统将它们标记为Automatically installed as dependency of another package。它帮助 Apt 系统识别不需要的包。
当您卸载主包时,拉取的包也会在系统中被标记为过时或不需要的包。您可以通过提供autoremove
选项来删除它们apt-get
。(aptitude 会自动与 master 包一起删除它们)。
此规则的一个例外是,如果您稍后安装另一个也依赖于拉取的软件包的软件包,则在您删除第一个主软件包时,拉取的软件包不会被标记为过时。
示例:您安装了一个X
依赖于 package 的包Y
。安装后X
,Y
也会安装并标记为自动。如果您不安装另一个Z
同样依赖于 的软件包Y
,则删除X
会降低 renderY
的用处,并且 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
。
像 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
Run Code Online (Sandbox Code Playgroud)
其中,ubuntu-restricted-addons 本身是另一个元包。由于元软件包仅用于拉取软件包,因此安装它们不会将拉取的软件包标记为 auto,而是将它们标记为手动安装。结果?仅删除主元包不会将拉取的包标记为过时,并且您无法通过autoremove
选项删除它们。这就是为什么您需要手动删除元包的每个拉取包的原因。
示例:您安装了一个X
依赖于包Y
和Z
. 当您安装它时,Y
和Z
包没有标记为 auto (作为另一个包的依赖自动安装),而是标记为手动安装。在以后要删除时X
,只会删除虚拟X
包。两者,Y
并且Z
,保留在系统中,你不能卸载它们autoremove
的选项。
归档时间: |
|
查看次数: |
6560 次 |
最近记录: |