如何从多个应用程序包中仅卸载一个应用程序?

如何从多个应用程序包中仅卸载一个应用程序?

我安装了这个包moreutils。我想删除此软件包中包含的一个名为 的应用程序parallel。我只想删除这个应用程序,我想让包/我的系统中的其他应用程序不受影响。

有没有办法使用apt工具来解决这个问题?或者我是否必须手动删除二进制文件和任何相关的配置?

答案1

dpkg您可以以支持的方式删除包提供的文件通过转移它。如果你想阻止任何从安装包中/usr/bin/parallel,创建一个通用的转移:

dpkg-divert --divert /usr/bin/parallel.moreutils --rename /usr/bin/parallel

这并没有完全删除parallel,而是将其重命名为parallel.moreutils,但效果是相同的。

请注意,该parallel软件包(附带 GNU Parallel)执行与此类似的操作,将moreutils' 版本替换parallel为其自己的版本,因此,如果您打算使用 GNU Parallel,您可以安装该软件包,一切都会为您处理。

如果您将来改变主意,可以通过以下方式删除转移:

dpkg-divert --rename --remove /usr/bin/parallel

答案2

如果不违反发行版的承诺,您就不能这样做。 Debianoids(就像任​​何其他发行版一样)将二进制包作为软件的整体单元进行处理。从包中删除任何内容都可能导致其损坏。而且它肯定会破坏依赖 moreutils 来获得并行的包!

因此,Debian/Ubuntu 既没有一种方法可以仅删除该一个文件,也不应该手动从该包中删除文件。

相关内容