安全卸载Gentoo中的软件包


12

我想卸载Gentoo中的特定软件包,并浏览了新兴手册页。我找到了--unmerge选择:

警告:此操作可以删除重要的程序包!删除所有匹配的软件包。这不会检查依赖关系,因此可能会删除系统正常运行所必需的软件包,其参数可以是atom或ebuilds。对于--unmerge的依赖关系感知版本 ,请使用--depclean--prune

但是,我想紧急检查系统中其他已安装的软件包是否需要我要卸载的软件包。--depclean并且--prune不提供该功能:

  • --depclean 删除已安装为依赖项但不再需要的软件包
  • --prune “从系统中删除软件包中除最高安装版本以外的所有版本”

没有的依赖项检查版本--unmerge吗?

Answers:


17

我认为depclean您所描述的方式无效。它没有任何参数,但是如果您将其传递给程序包名称,则它的作用类似于unmerge附加的依赖项检查。来自emerge(1)

Depclean用作的依赖项感知版本--unmerge。给定一个或多个原子时,它将取消合并没有反向依赖性的匹配程序包。使用--depclean连同--verbose显示反向相关性。

我总是使用--depclean-c)取消单个软件包;它工作正常


6

gentoolkit可以帮助您:

equery d <atom>

您可以先检查依赖关系,然后在检查其依赖关系后继续删除软件包。


5

获得相同结果的另一种方法(尽管这不是与依赖项检查合并的命令):,emerge --deselect package它从世界文件中删除了软件包。现在,运行emerge --depclean将删除该软件包,前提是其他任何软件包都不需要该软件包。


这是否意味着emerge --depclean删除使用来安装的所有软件包emerge --oneshot(除非来自世界各地的软件包需要这些软件包)?
丹尼尔·库尔曼

@danielkullmann是的。它计算整个依赖关系图,并删除世界上任何软件包都没有拉的东西。emerge --noreplace --select顺便说一句,您可以使用添加已安装的软件包而无需重新编译它们。
njsg 2012年

1

有时会emerge --unmerge给出以下警告消息:

 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

似乎这是在取消打包之前进行依赖检查的推荐方法。不过,我仍然希望有一种更好,更自动化的方法来实现这一目标。

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.