-
解决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最后,按照国际管理,有图有真相是必须的:

相关日志:
-
解决Zend Optimizer无法加载及与eAccelerator的冲突
发表于 2010年03月16日 没有评论在VPS上下载了3.3.9的Zend Optimizer,找说明安装后出现错误:
cannot restore segment prot after reloc: Permission denied
找了下,问题是出在SELinux上,关闭SELinux即可解决:
- 修改/etc/sysconfig/selinux,修改为SELINUX=disabled
- 执行/usr/sbin/setenforce 0立即关闭,且无需重启系统
如果你不希望关闭SELinux的话,也可以
chcon -t shlib_t ZendOptimizer.so
chcon -t texrel_shlib_t ZendOptimizer.so
操作后php-fpm start启动,一切正常。 但ShopEx网站返回502错误,修改php.ini输出错误日志查看后发现访问Zend Guard做了encode的php文件均无法正常执行,错误是Connection reset,但命令行查看php -v时显示Zend Optimizer已加载,phpinfo()也显示正常。
反复尝试多次后发现是装载次序的问题,修改php.ini,使eAccelerator在Zend Optimizer之前装入即可。相关日志:
-
记录一些常用的Linux命令序列
发表于 2009年09月20日 没有评论刚好最近写些shell script,翻出些平时日常用到的一些Linux命令组合使用方式,许多方法都可以略微修改后发挥其他作用。做个合集一起放在这里做下资料留存:
查看本机所有的tcp连接状况:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'查看当前机器上正在监听的端口号及进程名:
netstat -npl|awk '($1=="tcp"){print $4"\t"$7}'|sed 's/[0-9\.]*://g'列出当前用户的所有进程详细信息:
ps aux|grep $(whoami)查看自己最近20次登陆系统的时间和登出时间:
last|grep $(whoami)|tail -20强行关闭Tomcat:
ps aux|grep tomcat|grep -v grep|awk '{print $2}'|xargs kill -9不关闭Nginx重读配置文件:
ps -ef | grep 'nginx: master process' | grep -v 'grep' | awk -F ' ' '{print $2}'|xargs kill -HUP关闭内存占用过多的php fastcgi进程,这里的$5和$6分别是虚拟内存和物理内存:
ps aux|grep php-cgi|awk '(($5>150000||$6>60000) && $8=="S"){print $2}'|xargs kill -9相关日志:



最近评论