为什么有这么多来自 GTK+ 应用程序的控制台消息?

Cri*_*lae 11 software-center command-line

我尝试使用命令行打开软件中心

software-center
Run Code Online (Sandbox Code Playgroud)

它确实有效。我的意思是,软件中心打开并运行良好,但与此同时,在终端窗口中我看到了很多奇怪的错误。怎么可能?我很困惑。

对此是否有任何解释(及其修复方法)?我再说一遍,该应用程序确实打开了并且运行良好,只是背景中的线条表明有些事情不对劲。

这是包含所有行的屏幕截图。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

DK *_*ose 12

之前已经问过非常密切相关的问题。以下是部分答案的链接:

我喜欢这样的解释:

此类消息在 Gnome 应用程序中很常见,并不一定表示存在错误。Gnome 对用户采取了一种简化的方法;目标受众不会从终端运行应用程序,因此不会看到这些消息。如果您真的关心,则将 Gnome 应用程序的错误输出重定向到日志文件,否则重定向到 /dev/null。

资料来源:吉尔斯

这也很好:

此错误表明该软件正在使用具有更新版本的 GTK 库的完全有效的 GTK 库调用。有时在软件开发过程中,希望摆脱“旧方式”,在保持向后兼容性的同时做事。这是通过将不需要的调用标记为折旧来实现的。这告诉开发人员他们的代码在这个版本中是完全有效的,但是将来他们的代码需要更新以使用新版本的库,可能会有很多版本。

在这种情况下,GTK 希望更严格地在维度上包含单位。它告诉开发人员 GTK 假设单位是像素,这是软件开发人员首先做出的确切假设。

资料来源:Bailley S

顺便说一下,如果您从终端启动 Firefox,您可能会看到如下可怕的消息:

GLib-CRITICAL **: g_slice_set_config: assertion
Run Code Online (Sandbox Code Playgroud)

但根据Bug #833117 中的评论,它似乎是无害的。

简而言之,我们初学者几乎不需要从终端启动基于 GUI 的应用程序,除非出现问题并且我们需要将输出提供给能够理解此类输出含义的人。


kam*_*mil 7

当然,您在终端中看到的是给开发人员的消息。所以你有两个选择,要么忽略它们,要么打开应用程序而不看到它们。

要执行第二个选项,请在命令行中尝试此操作:

nohup software-center &
Run Code Online (Sandbox Code Playgroud)

它将打开应用程序并返回终端,没有任何垃圾


dob*_*bey 5

您看到的打印到控制台的消息不一定是错误。实际上,屏幕截图中的大多数内容只是提供信息或警告。有关主题处理的警告是由于您使用的 GTK+ 主题所致。它们不是致命的,但确实需要由制作主题的人修复,如果不修复它们将来可能会导致更大的问题。

实际上来自software-center应用程序的一些警告实际上只是信息。

通常,可以安全地忽略这些警告和信息消息。