【问题标题】:Sublime Text on Ubuntu 14.04 - Keeps attempting to remove itUbuntu 14.04 上的 Sublime Text - 不断尝试删除它
【发布时间】:2014-04-19 03:23:43
【问题描述】:

Sublime & 从终端打开一个 Sublime Text 窗口,但不断收到此消息:

(sublime: 6476): GLib-CRITICAL **; Source ID 1982 was not found when attempting to remove it. 

源 ID 不断变化。使用 Ubuntu 14.04。

任何想法可能会发生什么?谢谢!

【问题讨论】:

  • 我的终端也抛出了这个错误。没有什么会崩溃或破裂(据我所知),所以它比任何事情都更令人讨厌。如果您找到解决方法,请在此处发布。

标签: ubuntu sublimetext2 sublimetext ubuntu-14.04 glib


【解决方案1】:

This page 在 Ubuntu 的错误跟踪器中描述了这种特殊情况。显然这是 14.04 的一个已知错误,可能是因为 GLib 的回归,或者 GLib 和 GTK 之间的不匹配(其中一位评论者说)。

没有尝试删除 Sublime,这只是编程库中的一个错误。如果您没有任何问题或无法使用,请忽略它...

编辑 此问题已在 14.10 及更高版本中修复。您可以升级您的发行版,或者只是升级glib,错误应该会消失。升级到Sublime Text 3(无论如何强烈推荐)也可以解决问题。

【讨论】:

  • 使用错误代码进行搜索.. 没有找到 Ubuntu 错误跟踪页面。感谢您抽出宝贵的时间。谢谢。
  • 抱歉,这条评论回复晚了,但是你知道这是否会填满任何日志文件吗?我只是想确保忽略它不会导致某些日志文件随着时间的推移增长到荒谬的大小。
  • @Mo2 抱歉,刚刚看到您的评论。此消息将发送到您的标准错误输出,因此除非您的系统设置为记录任何程序发出的每条错误消息(而且我不相信 Ubuntu 的普通安装会这样做),我不会担心任何事情。无论如何,大多数日志文件都会在一段时间后被压缩和轮换,并且根据设置,旧文件可能会被删除,所以你应该没问题。如果您像我一样,随机下载会比错误消息更快地填满您的磁盘:)
【解决方案2】:

这最终太烦人了,无法忽略,所以我有一个相当草率的解决方案。 这是一个在 nohup 中运行 sublime 的函数。起初我尝试创建一个别名来使用 nohup 运行 sublime,但它会生成一个日志文件 .output 并将其留在我正在工作的任何目录中。为了解决这个问题,函数 sblmruns sublime in nohup 哪个从终端隐藏错误,然后将输出日志发送到 /dev/null

现在我有一个函数sblm,我只需使用别名sublime 来覆盖正常的sublime 函数。

将所有这些粘贴到您的 .bash_aliases 文件中。

#Function to deal with the annoying sublime errors
#Send annoying .output logs to /dev/null
function sblm
{
    nohup sublime $1 >/dev/null 2>&1 &
} 

#Call my sublime function
alias sublime="sblm"

【讨论】:

  • 你也可以写alias sblm='sublime_text . &>/dev/null'
  • 这很有用! :D 但是当您需要使用命令行打开多个文件时,问题就来了。如果你写sublime *.cpp&,它只会打开第一个.cpp 文件。你如何编辑你的函数以便之后接受参数(文件路径)?
【解决方案3】:

我升级到 sublime 3 并且我停止接收这些消息。希望它也适合你。

[EDIT]你可以按照这个快速教程升级到sublime text 3:Tutorial from WebUpd8

【讨论】:

  • 你知道是什么导致了错误吗?
  • 不确定,但就像 Jander 提到的那样,这很可能是 g_source_remove() 函数的不当使用。
  • 和Yeysides一样,解决了问题。我正在编辑他的答案,以添加指向如何升级到 Sublime 3 的教程的链接。
【解决方案4】:

ConsoleKit 中似乎存在双重释放错误。

最近很多 Gnome 程序都出现了这种情况,但 ConsoleKit 用户尤其受到影响,因为(根据我的经验)每次按键都会出现警告。消息的来源是 Glib 的g_source_remove(),但它的意思是调用者试图不正确地使用g_source_remove()g_source_remove() 是一个资源释放函数,很像 libc 的 free(),所以最可能的原因是在同一个对象上调用它两次。

来自https://bugzilla.gnome.org/show_bug.cgi?id=721369#c7

GLib 最近开始在 g_source_remove() 传递垃圾时发出警告(根据警告)。您的应用程序可能已经被破坏了一段时间,并且不知道在过去 g_source_remove() 会愉快地关闭任何随机源时实际发生了什么,因为程序员得到了错误的 g_source_remove() 参数。

【讨论】:

    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2013-07-10
    相关资源
    最近更新 更多