如果我发错了地方,请原谅,但我在其他地方已经遇到过几次这种情况,最终还是被引到这里。所以开始吧...
也许我是个例外,但我有多个 WINE 前缀,它们都运行不同的东西 - 主要是游戏。与其在每个前缀中安装 Microsoft Core Fonts 并占用磁盘空间,不如在主系统级别安装一次更有意义。
但是,在大多数 Ubuntu 版本以及基于它的任何版本(例如 Mint)中,当您尝试安装时,ttf-mscorefonts-installer
还会提示您安装其他 8 个软件包(如果它们尚未安装)(在 Mint 等发行版中,它们尚未安装):
* python3-debconf
* python3-distro-info
* python3-distupgrade
* python3-update-manager
* ubuntu-advantage-tools
* ubuntu-release-upgrader-core
* update-manager-core
* update-notifier-common
据我了解,发生这种情况的原因是ttf-mscorefonts-installer
Ubuntu 存储库中的软件包依赖于update-notifier-common
哪个软件包,而该软件包本身又依赖于列出的其余软件包,尽管这些额外的软件包实际上都不是安装或甚至工作这些 TTF 所必需的,而且可能不应该被标记为依赖项。
除此之外,还可以获取核心字体包直接从 Debian 上游无需额外的软件包,使用 gdebi、dpkg、Synaptic 或任何其他您碰巧拥有的 Debian 包管理器进行本地安装,不会破坏任何东西。
仔细检查后,我们可以看到该包本身主要安装了一个 POSIX shell 脚本,该脚本负责实际获取和安装所需的字体,这些字体通过以下 URL 列表下载:
* http://downloads.sourceforge.net/corefonts/andale32.exe
* http://downloads.sourceforge.net/corefonts/arial32.exe
* http://downloads.sourceforge.net/corefonts/arialb32.exe
* http://downloads.sourceforge.net/corefonts/comic32.exe
* http://downloads.sourceforge.net/corefonts/courie32.exe
* http://downloads.sourceforge.net/corefonts/georgi32.exe
* http://downloads.sourceforge.net/corefonts/impact32.exe
* http://downloads.sourceforge.net/corefonts/times32.exe
* http://downloads.sourceforge.net/corefonts/trebuc32.exe
* http://downloads.sourceforge.net/corefonts/verdan32.exe
* http://downloads.sourceforge.net/corefonts/webdin32.exe
该脚本具有以下依赖项:
* debconf
* gawk / AWK
* coreutils
* cabextract
* gzip
就是这样。似乎什么都没有任何事物与相关软件包有关。在软件包的其他地方,使用了 Lintian 的文件,这些文件位于“lintian”软件包中,大概是为了确保软件包符合 Debian 或 Ubuntu 的打包要求;但是,我不认为这是一种依赖关系,而是它支持 Lintian 的检查和验证。
通过查看整个包,我完全找不到任何理由将ubuntu-release-upgrader-core
相关包标记为 Microsoft Core Fonts 包的依赖项。虽然控制文件确实将“update-notifier-common”标记为依赖项,但我不记得在脚本中看到任何有关通知的内容,但也许我错过了什么。
无论哪种方式,被update-notifier-common
标记为依赖项ttf-mscorefonts-installer
似乎是不必要的并且可能会造成混淆,特别是在像 Mint(我正在使用的)这样的发行版上,它遵循自己的更新和升级路径,并且可能会因允许遵循本机 Ubuntu 升级版本路径而被破坏。
确实,从技术上来说,您可以通过 APT 来解决这个问题--no-install-recommends
,但这更像是一个短期解决方案,而这个问题本来就不应该存在。有没有办法从核心字体包中移除这种依赖地狱?或者,有人至少可以解释一下将这些依赖项添加到 TTF 包的逻辑和理由吗?