LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1044|回复: 6

openbox+lxde+archlinux,农历插件liblunar-2.4.1装好后,nm-applet图标不出现等问题。

[复制链接]
发表于 2011-5-28 09:45:18 | 显示全部楼层 |阅读模式
liblunar-2.4.1装好后,有一些小问题。
1、network-manager-applet图标不出现,但能联上网。
2、gcalctool、nm-connection-editor等都不能运行。在终端执行这些程序,提示:
Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
aborting...

若换成liblunar-3.0.0,进入lxde后,则菜单、面板、桌面都不能出现,黑糊糊一片。

openbox+lxde+archlinux。xfce4下也有这个问题。
 楼主| 发表于 2011-5-28 09:50:41 | 显示全部楼层
经过与liblunar作者yet的交流。得知:

首先应该确认清楚你的lxde(包括周边程序,如菜单,面板,桌面,nm-applet, gcalctool等相关程序)使用的是gtk2还是gtk3的版本。

如果是gtk2的版本,请安装:
lunar-date-2.4.0
lunar-calendar-2.4.1

如果是gtk3的版本,请安装:
lunar-date-2.4.0
lunar-calendar-3.0.0

同一个程序,在运行时不能同时链接gtk2和gtk3的库,包括其所依赖的库。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-28 09:53:19 | 显示全部楼层
我查了一下,nm-applet、gcalctool都是依赖gtk3的。lxpanel、thunar是依赖gtk2的。是说换成3.0.0,进入lxde后,则菜单、面板、桌面都不能出现,黑糊糊一片。

那这样看来,那就只能用lunar-calendar2.4.1,以保证lxde的顺利运行。

同时也产生疑问:要使用lunar-calendar2.4.1,那就只能同时容忍nm-applet、gcalctool(gtk3)这些程序不能使用?但为什么nm-applet和lxpanel又可以同时运行呢(没有安装lunar前)?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-28 09:54:33 | 显示全部楼层
作者yet热情及时回复:

如果在安装lunar之前,nm-applet依赖gtk3,lxpanel依赖gtk2,且能同时运行,那你应该查一下,你是否使用了不正确的liblunar-calendar-preload版本或者针对全局环境使用了这个preload。
lunar-calendar-2.4.1(gtk2)应该使用LD_PRELOAD="/usr/lib/liblunar-calendar-2.0-preload.so",
lunar-calendar-3.0.0(gtk3)应该使用LD_PRELOAD="/usr/lib/liblunar-calendar-preload-3.0.so",
为了保证其它程序不混用gtk2/gtk3的库,你应该仅仅只针对使用gtkcalendar的程序设置LD_PRELOAD这个变量;如果你将这个变量设置为全局性的,那就会导致其它程序混用gtk2/gtk3的库。

建议:
把这个文件删掉:/etc/X11/xinit/xinitrc.d/99-liblunar-preload
这样来启动lxpanel:
LD_PRELOAD="/usr/lib/liblunar-calendar-preload-2.0.so" lxpanel
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-28 09:56:13 | 显示全部楼层
终于解决了,用了一个笨方法,估计还有更好的办法。

按理讲,在lxde下,把 @LD_PRELOAD="/usr/lib/liblunar-calendar-preload-2.0.so" lxpanel 这一行放在autostart文件里,就可以自启动,但不行,连面板都不会出现,还是得手动在终端执行LD_PRELOAD="/usr/lib/liblunar-calendar-preload-2.0.so" lxpanel 才能启动面板。但可喜的是,这样启动后,一切正常,nm-applet、gcalctool(gtk3)这些程序都可以正常运行。

无奈,只得做了个可执行文件lxpanel.sh,放在/usr/bin下,内容:
#!/bin/bash
LD_PRELOAD="/usr/lib/liblunar-calendar-preload-2.0.so" lxpanel --profile LXDE

然后再在autostart文件里写上@lxpanel.sh这一行。之后,一切ok,天下太平。

(注:曾尝试直接把lxpanel.sh放在~/.config/autostart文件夹里,按理也该自启动,但也连面板都不会出现,不知怎么回事儿,估计是语法或格式有问题吧)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-28 09:59:22 | 显示全部楼层
附一个比较完整的自定义日历。

感谢作者yet的热情指导。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2011-5-29 10:34:45 | 显示全部楼层
好贴,收藏,留个脚印
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表