如何卸载软件包的一部分?

如何卸载软件包的一部分?

我已经安装了BSD 游戏包。许多游戏都很糟糕或损坏,所以我希望卸载其中一些而不卸载其他游戏。有没有简单的方法可以做到这一点?目前,我正在sudo rmusr/share/applications/bsdgames和获取它们usr/games/

答案1

包装的要点是包装是一个整体。

所以,没有简单的这样做,而不破坏包装本身。你通常不想这样做。

目前,我正在从 usr/share/applications/bsdgames 和 usr/games/ sudo rming 它们。

您尤其不想这样做:下一个软件/发行版更新/重建将重新建立这些,并且通常,远离您的系统使用apt.

不过,老实说:整个包总共需要 3.7 MB 的空间。这与您打开此页面时使用的数据量大致相同。只需忽略您不喜欢的游戏,对您来说没有任何可衡量的缺点 – 3.7 MB 就够了没有什么在运行 ubuntu 的机器上。

答案2

要卸载软件包的一部分,您的方法是正确的:如果您知道不需要(也不会)需要软件包中附带的文件,则可以将其删除(毕竟,这是您的系统)。但是,如果您保留这一点,下次升级软件包时,删除的文件将被恢复(除非它们是 中的配置文件/etc)。为了避免这种情况,您应该告诉dpkg您不需要删除的文件:在 中添加一个配置文件/etc/dpkg/dpkg.cfg.d,其行格式为

path-exclude=/path/to/foo

对于您删除的每个文件。

正如马库斯,这通常不是一个好主意,并且dpkg页也对此发出警告。但有些情况下是适当的;一种常见的设置是删除软件包附带的文档或使用您的计算机的任何人都不需要或不想要的语言的手册页。我有一个/etc/dpkg.cfg.d/locales文件包含

# Drop locales except English and French
path-exclude=/usr/share/locale/*
path-include=/usr/share/locale/en/*
path-include=/usr/share/locale/fr/*
path-include=/usr/share/locale/locale.alias

# Drop translated manpages except English and French
path-exclude=/usr/share/man/*
path-include=/usr/share/man/man[1-9]/*
path-include=/usr/share/man/en*/*
path-include=/usr/share/man/fr*/*

避免安装英语或法语以外的语言的语言环境文件和手册页。

聚合包bsdgames是文件删除有用的另一种情况;节省磁盘空间可能不值得,但从路径中删除候选者可能是值得的(假设您是系统的唯一用户)。

相关内容