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

J. *_*ini 6 ubuntu apt package-management uninstall

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

Mar*_*ler 15

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

\n

因此,在不破坏包装本身的情况下,没有简单的方法可以做到这一点。你通常不想这样做。

\n
\n

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

\n
\n

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

\n

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

\n

  • 这还算公平。当然,一个相当有用且相对懒惰的方法是向发行版提交错误报告,上面写着“蛇坏了,请删除”,然后等待几天。 (5认同)
  • 很好的答案 - 我只想提一下,OP 可能想要删除这些游戏以消除混乱,而不是文件的大小,即当您在应用程序启动器中搜索“snak”时,游戏“snake”可能会出现,即使它是损坏 - 或者游戏出现在用户界面的其他部分.. (2认同)

Ste*_*itt 13

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

\n
path-exclude=/path/to/foo\n
Run Code Online (Sandbox Code Playgroud)\n

对于您删除的每个文件。

\n

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

\n
# Drop locales except English and French\npath-exclude=/usr/share/locale/*\npath-include=/usr/share/locale/en/*\npath-include=/usr/share/locale/fr/*\npath-include=/usr/share/locale/locale.alias\n\n# Drop translated manpages except English and French\npath-exclude=/usr/share/man/*\npath-include=/usr/share/man/man[1-9]/*\npath-include=/usr/share/man/en*/*\npath-include=/usr/share/man/fr*/*\n
Run Code Online (Sandbox Code Playgroud)\n

避免安装英语或法语以外的语言的区域设置文件和手册页。

\n

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

\n

  • `/etc/dpkg.cfg.d`:哦哦!今天学到了一些东西! (2认同)