![是否可以单独卸载以前使用元包安装的包?](https://linux22.com/image/861791/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%8D%95%E7%8B%AC%E5%8D%B8%E8%BD%BD%E4%BB%A5%E5%89%8D%E4%BD%BF%E7%94%A8%E5%85%83%E5%8C%85%E5%AE%89%E8%A3%85%E7%9A%84%E5%8C%85%EF%BC%9F.png)
我不需要 Gnome 内置于 gnome-shell 中的帮助实用程序、文档查看器、联系人应用程序等。
是否可以删除只是那些软件包?每次我尝试时,它都要求我删除所有 gnome3。
我觉得这应该是可能的但我缺少了一些东西。
答案1
卸载元包拉取的包总是很难,甚至不可能。但是,既然您迫切希望删除这些内容,即使使用手动猜测,我也可以建议一个很好的替代方案。
安装、升级或删除的软件包都记录在/var/log/apt/history.log
文件中。从相关部分复制软件包名称并手动卸载它们相对简单。
以下是文件中部分内容的示例
Start-Date: 2016-12-12 19:15:40
Commandline: aptdaemon role='role-commit-packages' sender=':1.293'
Install: libva-tpi1:amd64 (1.7.1-2~gd~x), intel-gpu-tools:amd64 (1.15-1intel1), libva-egl1:amd64 (1.7.1-2~gd~x), vainfo:amd64 (1.7.1-2~gd~x), libva-glx1:amd64 (1.7.1-2~gd~x)
Upgrade: libgles2-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libdrm-nouveau2:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-nouveau2:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libegl1-mesa-dev:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgles1-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libglapi-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libglapi-mesa:i386 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), mesa-common-dev:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libxatracker2:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libegl1-mesa-drivers:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libegl1-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgbm1:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libdrm-amdgpu1:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-amdgpu1:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libwayland-egl1-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgles2-mesa-dev:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libdrm2:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm2:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libgl1-mesa-dev:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgl1-mesa-dri:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgl1-mesa-dri:i386 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libosmesa6:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libosmesa6:i386 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgl1-mesa-glx:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgl1-mesa-glx:i386 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libdrm-intel1:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-intel1:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-radeon1:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-radeon1:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-dev:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x)
End-Date: 2016-12-12 19:16:59
您可以从字段值中找到所需的包名称Install:
。甚至可以使用一些文本解析来从中提取包名称。
希望这至少能有一点帮助。
更新
我编写了一个 Ruby 脚本来帮助查看使用命令安装的包,以便稍后删除它们。但应谨慎行事,因为您稍后安装的一些包可能也依赖于其中一些包。它还没有完成,我想扩展它。无论如何,请在此处查看https://github.com/AnwarShah/apt-remove-meta
- 下载 zip 文件或克隆 repo
cd
到目录和- 运行
ruby search-apt-log.rb
。它会要求输入一个搜索词,输入它。然后它会给你所有涉及该词的 apt 事件的历史记录。然后你可以通过复制名称来查看安装了哪些软件包并将其删除。
答案2
我看到调用时这些包的安装大小/需要释放的空间apt-get
有几MB,所以我咬紧牙关,让它apt-get
运行,结果一切都正常了。
因此,如果其他人不确定是否要删除软件包,只需确保安装/卸载大小适合软件包,一切都会没问题。如果它显示为几百 MB,那么不要点击Y
答案3
前段时间,我编写了一个名为 apt-holepunch 的 sh 脚本来实现这一点(http://www.mail-archive.com/[电子邮件保护]/msg900702/apt-holepunch)。警告:这个脚本极其危险。
完整内容如下:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=625801
事实证明,确实有充分的理由不想安装元包中的所有包,而是保留元包以便将来添加的包也能安装。不知何故,开发团队没有理解这一点。