nautilus 3 下的右键菜单中没有 rabbitvcs 的问题

自从 GNOME 升级到 3 之后 GNOME 就越来越难用了,我那些可爱的面板小程序几乎全部阵亡。这是题外话,这次要记录的是 nautilus 3 的右键菜单看不到 rabbitvcs 的问题。

其实这个问题不能怪 nautilus,实际上是 rabbitvcs 自己的问题。不过 nautilus 自己问题也不少,所以顺便黑一把 nautilus。

在命令行中运行 nautilus,可以看到下面的输出:

gs@gs-laptop:~$ nautilus
Initializing nautilus-gdu extension
Initializing nautilus-dropbox 1.6.0

(nautilus:30568): Nautilus-Python-WARNING **: g_module_open libpython failed: /usr/lib/libpython2.7.so.1.0: 无法打开共享对象文件: 没有那个文件或目录
ImportError: could not import gobject (error was: '/usr/lib/x86_64-linux-gnu/libpyglib-gi-2.0-python2.7.so.0: undefined symbol: _Py_ZeroStruct')

(nautilus:30568): Nautilus-Python-WARNING **: pygobject initialization failed

(nautilus:30568): Nautilus-Python-WARNING **: nautilus_python_init_python failed
Fontconfig warning: "/etc/fonts/conf.d/25-wqy-zenhei.conf", line 11: Having multiple values in <test> isn't supported and may not work as expected

可以看到 nautilus 报了一个错误:could not import gobject (error was: ‘/usr/lib/x86_64-linux-gnu/libpyglib-gi-2.0-python2.7.so.0: undefined symbol: _Py_ZeroStruct’)

这个错误其实是 nautilus 的 python 模块,也就是 python 报的错误。这问题很令人郁闷,字面上说的是找不到 _Py_ZeroStruct 符号,但事实上导入 gobject 的时候根本不需要显示查找这个符号。在做死的谷歌的帮助下,好不容易终于找到了解决方法:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=710181

https://code.google.com/p/rabbitvcs/issues/detail?id=803

根据上面者两个网页提供的信息,产生这个问题的原因是 rabbitvcs 显示地导入了 python 库文件 libpythonX.X.so.1.0,但是在 64 位系统下,这个文件是位于 /usr/lib/x86_64-linux-gnu 目录下的,最后结果就是找不到这个文件,所以初始化失败。

解决方法很简单,给这个文件做个软链接就行了:

ln -sf /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 /usr/lib
ldconfig

rabbitvcs 的右键菜单又回来了

2013-09-02 17:29:30的屏幕截图

最后,上面的第一个网址中还给出了输出 nautilus-python 调试信息的方法,导出下面这个环境变量就可以看到调试输出了,这样在遇到问题的时候就不会被含糊不清的错误信息误导了。

export NAUTILUS_PYTHON_DEBUG=misc
本文发表于 乱七八糟,并添加了 , , 标记。保存永久链接到书签。

发表评论

邮箱地址不会被公开。