-
解决Ubuntu 64位下LinuxQQ无法输入中文的问题
发表于 2011年04月4日 4 条评论著名的烂尾工程腾讯Linux QQ至今都只有个beta1不说,在这个4G内存条的价格也就值一个生日蛋糕的时代,竟然还没有64位的版本,真是逼得我不得不将其鄙视了一百遍啊一百遍。
幸好,还可以通过强制安装来在64位下使用: sudo dpkg -i --force-all linuxqq_v1.0.2-beta1_i386.deb 。当然前提是相关的32位兼容包也都装了: sudo apt-get install ia32-libs 。完事后应该就能启动QQ登录看中文消息以及发送英文消息了,嗯,没错,这句话的言下之意就是说你输入不了中文。
在控制台下运行qq,可以看到IM无法装载的消息。用scim的同学运气好些,有篇文章《64位ubuntu安装QQ for linux 笔记》介绍了如何搞定这个鬼扯的事。倒霉的ibus的同学们么,就跟我和这位同学(【求助】64位ubuntu下QQ无法使用i-bus~)一样的悲催。
当然,前面的笔记既然已经指出了问题和解决的思路,那么发挥一下我们的折腾力,这事还是有得搞的。
首先是得让qq知道要用32位的ibus文件,而非默认的文件。命令如下:/usr/bin/gtk-query-immodules-2.0 | sudo tee /etc/gtk-2.0/gtk.immodules.32 #用scim的前辈不厚道,给的修改好的文件内木有ibus,我们自己来生成
sudo gedit /etc/gtk-2.0/gtk.immodules.32 #需要将其中所有的/usr/lib/替换成/usr/lib32/
sudo vim /usr/bin/qq在QQ的启动脚本中第2行开始,插入以下两条命令,第一条是加入IM模块的环境变量,第二条是用来解决LinuxQQ动不动突然不见的问题的:
export GTK_IM_MODULE_FILE=/etc/gtk-2.0/gtk.immodules.32
export GDK_NATIVE_WINDOWS=true然后再在命令行下启动QQ,恭喜你,你还是会继续看到ibus无法载入的消息:)
嗯哼,事实上,是im-ibus.so找不到,这个玩意在/usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so自然是有的,但/usr/lib32/gtk-2.0/2.10.0/immodules/im-ibus.so就木有了。
所以,还是先sudo apt-cache showpkg ibus-gtk看看64位的版本号和文件路径,然后搞一个相同版本的32位版本去。 文件在这个目录下可以找到http://cn.archive.ubuntu.com/ubuntu/pool/main/i/ibus/,选择很多,仔细看看,选择和自己原ibus-gtk包相同版本号的i386包下,免得出些莫名其妙的问题。比如我的就是ibus-gtk_1.3.7-1ubuntu4_i386.deb。
包下回来以后 dpkg -x ibus-gtk*.deb /tmp 将其解开,然后mv /tmp/usr/lib/* /usr/lib32/gtk-2.0/2.10.0/immodules/就好。再次启动qq,发现错误信息果然变了,这次是libibus.so.2没有载入,结果还是IM模块ibus无法载入。
和前面的ibus-gtk一样的做法解决之,但要注意的是这次解出来的*.so是需要放去/usr/lib32而不是之前的immodules里,随后是lib-dbus-1-3的so也放去/usr/lib32。我的机器上到此就已经成功解决了中文输入问题了。 有同样问题的同学可以试试看,只是系统版本和包版本都尽量保持和系统里已经有的64位包相一致。
附上我的几个相关包的下载路径:
wget http://cn.archive.ubuntu.com/ubuntu/pool/main/i/ibus/ibus-gtk_1.3.7-1ubuntu4_i386.deb
wget http://cn.archive.ubuntu.com/ubuntu/pool/main/i/ibus/libibus2_1.3.7-1ubuntu4_i386.deb
wget http://cn.archive.ubuntu.com/ubuntu/pool/main/d/dbus/libdbus-1-3_1.4.0-0ubuntu1.2_i386.deb最后,按照国际管理,有图有真相是必须的:

相关日志:



最近评论