2008-10-03

64位ubuntu下32位程序的输入法问题

我是64bit的ubuntu,有时会用到32bit的程序,如flock和qq,然后输入法就成了问题。

定义32位程序输入法加载模块的文件应该是/etc/gtk-2.0/gtk.immodules.32,默认安装情况下,里面只有scim没有scim-bridge。不过里面scim指向的模块/usr/lib32/gtk-2.0/2.10.0/immodules/im-scim.so并不存在。这样如果在程序用右键选择输入法为SCIM Input Method,会报找不到模块。

整个解决流程我参考了http://forum.ubuntu.org.cn/viewtopic.php?t=139907&start=0&postdays=0&postorder=asc&highlight

一开始我是想弄通im-scim.so,于是从源里下了32位的scim-gtk2-immodule, libscim8c2a等包,手工解压,之后虽然32位程序里能调出scim输入法了,但是没有中文输入法。在gtk.immodules.32中在scim对应行加"zh"也没用。

后来想想,我系统默认输入法是scim-bridge而不是scim,于是把目光转向了im-scim-bridge,从源里下来32位scim-gtk2-immodule,把im-scim-bridge.so放到/usr/lib32/gtk-2.0/2.10.0/immodules/,然后在/etc/gtk-2.0/gtk.immodules.32最后添加两行:

/usr/lib/gtk-2.0/2.10.0/immodules/im-scim-bridge.so"
"scim-bridge" "SCIM Bridge Input Method" "" "" ""

(链接里说的方法是用/usr/bin/gtk-query-immodules-2.0 > gtk.immodules.32,然后把/usr/lib都改成/usr/lib32,似乎是更佳的方法)

这样32位程序里就能输入中文了,之后发现把32位的scim那些文件删去也可以正常工作,因此看来只需要im-scim-bridge.so一个文件。

No comments: