我是否接受了ttf-mscorefonts-installer的最终用户许可协议?

对于关于缺少视频编解码器的问题,一般的回答是安装ubuntu-restricted-extras。但是这个元包还包括ttf-mscorefonts-installer,需要接受最终用户许可协议才能完成安装。并不是每个人都想签署该许可协议,但是没有明显的方法来拒绝该许可协议。请参阅如何在使用apt安装软件包时拒绝许可协议?

Step 1Step 2

我最后来回了几次,似乎才继续进行下去 - 我想点击“转发”,“转发”而不接受最终用户许可协议可能是有效的,但是该软件包现在已安装,所以安装过程并未被取消。
这是否意味着我已经接受了最终用户许可协议?有没有地方可以查看是否记录或存储了这个接受?
明显地,通过dpkg-query可以看到该软件包已安装:
amanda@mona:~$ dpkg-query -l ttf-mscorefonts-installer
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  ttf-mscorefont 3.4+nmu1ubun all          Installer for Microsoft TrueType 

你真的确定 ttf-mscorefonts-installer 已经安装了吗?你能再次使用 dpkg -s ttf-mscorefonts-installer 命令来检查一下吗? - Radu Rădeanu
是的。"Package: ttf-mscorefonts-installer; Status: install ok installed" -- 我更新了我的问题,附上了dpkg-query的结果。谢谢。 - Amanda
嘿,下次安装ttf-mscorefonts-installer时别忘了在EULA许可条款对话页面勾选框!你没有勾选“您是否接受EULA许可条款”的框,只是按了前进按钮。而且说实话,还有其他安装微软真正字体的方法,我建议远离“ubuntu-restricted-extras”软件包,它可能会破坏整个系统,所以最好单独安装你需要的各个软件包,而不是一次性安装一堆。 - Taz D.
@floppy 嗯,问题是关于用户不想接受最终用户许可协议的情况。"别忘了勾选框"在这里不适用。我也不同意你关于ubuntu-restricted-extras软件包的说法。你不能说其他东西"更好",而且它真的不应该以任何方式破坏你的系统。如果确实有问题,那么它已经超出了这个问题的范围。 - gertvdijk
@gertvdijk 谢谢。对于缺失的视频编解码器问题,答案似乎是 ubuntu-restricted-extras,这让我有点恼火,我懒得去找出元包中哪个软件包实际上包含了我所需的内容。 - Amanda
我确实提交了一个关于这个问题的错误报告。请随意在那里发表意见,帮助解决这个问题。这个问题已经困扰用户多年了。https://bugs.launchpad.net/ubuntu/+source/msttcorefonts/+bug/1283746 - Amanda
2个回答

不,你没有接受最终用户许可协议(EULA)。而且,是的,你没有安装字体,但是你确实安装了软件包。

我知道这有点令人困惑。让我来解释一下。

实际上,接受/拒绝的值被写入debconf数据库中。它与软件包的安装是独立的。软件包的后安装脚本负责安装字体,并在你不接受EULA的情况下阻止安装。

要检查debconf数据库中的值,请安装debconf-utils Install debconf-utils,然后执行以下操作:

$ sudo debconf-get-selections | grep 'msttcorefonts/accepted-mscorefonts-eula'
ttf-mscorefonts-installer       msttcorefonts/accepted-mscorefonts-eula boolean true

对于我的机器来说,这是真的,因为我接受了它。对于你来说,这可能是假的。
即使你安装了软件包,但如果你没有接受最终用户许可协议(EULA),那么字体将不会被安装。为什么呢?因为软件包不包含字体文件。它从外部网站下载字体,以遵守分发中的许可限制。要证明,请查看软件包的内容:
$ dpkg -L ttf-mscorefonts-installer 
/.
/var
/var/lib
/var/lib/msttcorefonts
/usr
/usr/share
/usr/share/fonts
/usr/share/fonts/truetype
/usr/share/package-data-downloads
/usr/share/package-data-downloads/ttf-mscorefonts-installer
/usr/share/doc
/usr/share/doc/ttf-mscorefonts-installer
/usr/share/doc/ttf-mscorefonts-installer/README.Debian                                                                                                                        
/usr/share/doc/ttf-mscorefonts-installer/copyright                                                                                                                            
/usr/share/doc/ttf-mscorefonts-installer/changelog.gz                                                                                                                         
/usr/share/lintian                                                                                                                                                            
/usr/share/lintian/overrides                                                                                                                                                  
/usr/share/lintian/overrides/ttf-mscorefonts-installer                                                                                                                        
/usr/lib                                                                                                                                                                      
/usr/lib/msttcorefonts                                                                                                                                                        
/usr/lib/msttcorefonts/update-ms-fonts

这就是为什么它被称为“安装程序”。这是丑陋的、完全非标准的打包方式。开发者被迫这样做,因为前面提到的许可限制。类似的解决方法也已经针对Flash开发出来了,打包成flashplugin-installer Install flashplugin-installer
在安装软件包后,位于/var/lib/dpkg/info/ttf-mscorefonts-installer.postinst的后安装脚本将只有在接受许可证(在预安装脚本中询问)后才会下载和安装字体。它使用/usr/lib/msttcorefonts/update-ms-fonts应用程序(该应用程序实际上是软件包的一部分)来执行实际的下载和安装操作。你可以自己查看这些脚本;它们并不是特别复杂。

2你意识到这句话有多么晦涩难懂了吗?“如果你不安装它,预安装脚本会阻止安装。” - Amanda

通过安装ubuntu-restricted-extras Install ubuntu-restricted-extras,您还将安装ttf-mscorefonts-installer Install ttf-mscorefonts-installer软件包。该软件包负责安装受限制的微软字体。
每当我们不同意微软最终用户许可协议时,它将不会安装这些字体。我们可以通过搜索所有已安装的字体软件包来轻松检查此情况:
fc-list

如果我们没有同意最终用户许可协议(EULA),也没有通过其他方式手动安装 Microsoft 字体(例如 Arial),那么这些字体将不会在列表中列出。

如果我们还想删除字体安装程序,可以放心地这样做。

sudo apt-get purge ttf-mscorefonts-installer

小心依赖于mscorefonts的包,可能会被一并移除。

啊。"你无法安装这个软件" 这句话有点让人困惑。因为我所做的是安装一个软件包,我认为 ttf-mscorefonts-installer 就是 "这个软件"。字体安装程序并不安装 "软件",它只安装字体。更清晰的错误提示应该是 "你无法安装这些字体"。 - Amanda
@Amanda:是的,用这种措辞,它看起来和感觉就像是由微软开发的一样 ;) - Takkat
我不同意你对于字体未安装的说法的支持。"dpkg -l ttf-* 如果我们没有同意最终用户许可协议(EULA),并且我们没有通过其他方式手动安装微软字体,那么在列表中将不会列出任何微软字体。" 这是不正确的,因为你在 dpkg 数据库中看到已安装的软件包。这正是问题主体中 OP 所描述的情况!" 我认为只需点击“转发”按钮而无需接受 EULA,但软件包现在已经安装了"。不过,我确实同意你所说的陈述本身,正如你在我的回答中所看到的。 - gertvdijk
@gertvdijk: 如我所说,如果我们没有彻底清除它,软件包安装程序将被标为已安装。为了更好地检查微软字体,我对其进行了编辑。 - Takkat
不,sudo apt-get purge并不能完全删除ttf-mscorefonts-installer的所有痕迹。现在每次重启时,我都会收到一个"检测到系统错误"的提示,并且在/var/crash目录下我可以看到这是由ttf-mscorefonts-installer引起的。 - undefined