以前一直用的是weirdX,一个纯Java写成的Xserver。功能还不错, 只是有些程序运行之后会报告无法连接Xserver的情况。不过前两天zz介绍了一款名为Xming的Xserver, 速度要比weirdX快一些,而且没遇到不兼容的程序,可以说是相当完美了。
下载后直接安装运行就可以了。xhost怎么设置?打开程序文件夹,里面有一个X0.hosts文件,其内容就是允许连接的主机,每行一个地址, 把程序所在的主机连接上即可。运行程序时只需先 export DISPLAY=IP地址:0.0 就行了。
有些gtk程序中的汉字会乱码(显示成方块),只需去Xming的主页下载字体包,装上即可。
硬件环境:NEC Express 5800工作站 51Le
软件:SuSE Enterprise Linux Desktop 10 SP1
故障现象:从DVD启动之后选择安装Linux,片刻后出现SuSE的安装界面,第一步选择安装程序语言时,键盘、鼠标均无反应,键盘的Capslock灯也失效。
初步分析可能是由于SuSE 10不支持SATA硬盘的缘故,于是进入BIOS设置将SATA#1的模式由Enhanced改成了Compatible,结果启动时BIOS根本找不到硬盘。在网上查了查,有人说换成USB键盘鼠标就好了,抱着试试看的态度找了套USB的键盘鼠标换上,没想到真的好了。
太不可思议了,由于键盘鼠标而导致系统无法安装,这事儿还是第一次听说。
很多软件都支持gettext,比如WordPress、ZenPhoto等。那么要想做个语言包,就得用到gettext这个工具。以ZenPhoto为例,使用方法如下:
首先要找出所有需要翻译的文件:
$ cd zenphoto $ find . -name "*.php" > filelist.txt
然后从所有需要翻译的文件中提取出英文字符串。
$ xgettext --from-code utf-8 -f filelist.txt -d zenphoto
这样,xgettext命令就会分析所有文件,找出其中需要翻译的字符串(即php中调用gettext所用的字符串)并输出到zenphoto.po中。--from-code参数指定源代码的编码格式。ZenPhoto的源代码中,gettext函数参数中含有一些UTF-8的字符(实际上应该没有),如果不指定这个参数,xgettext就无法正确识别这些UTF-8字符。-f 指定要分析的文件列表。-d指明输出文件的名称,扩展名为.po。
然后创建语言文件夹,把.po文件放进去。ZenPhoto的话,操作方法如下(当前目录为zenphoto根目录):
$ mkdir -p locale/zh-CN/LC_MESSAGES $ mv zenphoto.po locale/zh-CN/LC_MESSAGES $ cd locale/zh-CN/LC_MESSAGES
接下来翻译zenphoto.po文件就行了。
翻译完成后,执行如下命令将.po文件编译成.mo文件:
$ msgfmt -o zenphoto.mo zenphoto.po
然后重启httpd就能看到翻译的效果。
忘了说了,如果系统上没有xgettext和msgfmt命令,只需安装gettext包即可。
GNU diff有很多功能平时我们不常用到,但若知道,在急需时还真能派得上用场。
最常用的功能莫过于生成patch文件了:
diff -urN old/ new/ > mysoft.patch
参数 -u 表示使用 unified 格式,-r 表示比较目录,-N 表示将不存在的文件当作空文件处理, 这样新添加的文件也会出现在patch文件中。
然后在需要应用patch的地方使用下述命令即可:
patch -p0 < mysoft.patch
diff的 -y 命令(长格式为 --side-by-side)可以将屏幕分成左右两部分,来比较两个文件之间的差异。 许多图形化的比较工具都有这个功能,但如果只能使用命令行,这个参数就相当有用了。 如果要改变左右各部分的宽度,可以通过 -W (--width)参数来指定。 (这条技巧来自于bkブログ,谢谢)
此外,--strip-trailing-cr 参数可以去除行尾的换行,这样DOS格式和Unix格式的文件互相比较时, 就不至于因为换行符不一致而出现大量的差异。
OpenNMS是个很强大的网管软件,用它可以监视服务器的资源使用状况, 并在必要的时候向管理员发出警告。(当然它的强大功能不止这些,我就用到这个功能而已)。 安装其实也不麻烦,基本上按照官方文档的安装过程都没问题。
网上流传的方法都是将OpenNMS装在Tomcat上,不过最新版的opennms-1.6.1内置了Web服务器, 所以Tomcat就不是必须的了,这样安装要方便许多。 下面这篇文章是在Redhat Liux Enterprise 4上安装的,其实RH系列的操作系统都差不多, 大家在安装时注意选择和操作系统匹配的软件包就行了。
阅读全文 »之前发过一篇在Windows下安装Trac的方法,不过Trac更多的是在Linux下使用, 所以这里介绍一下在Linux下的安装方法。时过境迁,Trac现在已正式发布了0.11版, 与之前的0.9、0.10相比,这个版本的代码浏览器增加了许多功能, 最好用的就是它支持subversion的Blame了,可以查看到源代码的每一行是在哪个版本由谁修改的。
这篇文章是在Fedora Core 8上进行的,其他的RedHat系的Linux应该大同小异。
阅读全文 »今天发现,制作的某个rpm包在执行 rpm -i --nodeps <packagename.rpm>时会出现以下的警告信息:
warning: cannot get shared lock on /var/lib/rpm/Packages
但如果不加--nodeps参数,就不会出现这个信息。
网上查了半天没找到相关资料,最后用排除法发现,SPEC文件的%post中有一行 rpm -qa,就是这行命令导致了该警告的发生。 原因尚且不明,估计是在安装过程中,rpm正在执行,此时在%post中再次启动rpm,当然会发生共享锁的错误。
memcached全面剖析的连载已经结束,翻译工作也已经全部完成了。 为了方便阅读,现将原来的翻译结果打包成PDF文档。可在本文末尾处下载。
原来的各篇翻译的地址如下:
- 第1章:http://tech.idv2.com/2008/07/10/memcached-001/
- 第2章:http://tech.idv2.com/2008/07/11/memcached-002/
- 第3章:http://tech.idv2.com/2008/07/16/memcached-003/
- 第4章:http://tech.idv2.com/2008/07/24/memcached-004/
- 第5章:http://tech.idv2.com/2008/07/31/memcached-005/
今天在开发时突然apache无法启动了。表现为,输入 httpd -X 后片刻自动退出, 同时在error_log中有如下内容:
[Fri Aug 15 10:54:31 2008] [emerg] (28)No space left on device: Couldn't create accept lock
df一下发现不是磁盘空间的问题。Google了一下就找到了解决方案,原来是系统的信号量(?)不够用了。 用以下命令可以查看所有的信号量:
# ipcs -s ------ Semaphore Arrays -------- key semid owner perms nsems 0x00000000 19234816 nobody 600 1 0x00000000 19267585 nobody 600 1 0x00000000 19300354 nobody 600 1 0x00000000 19398659 nobody 600 1 0x00000000 19431428 nobody 600 1 0x00000000 19464197 nobody 600 1 0x00000000 19562502 nobody 600 1
然后用这行命令删除所有的信号量即可:
ipcs -s | grep nobody | perl -lane 'print `ipcrm sem $F[1]`'
发表日:2008/7/30
作者:长野雅广(Masahiro Nagano)
原文链接:http://gihyo.jp/dev/feature/01/memcached/0005
前几次的文章在这里:
- 第1次:http://tech.idv2.com/2008/07/10/memcached-001/
- 第2次:http://tech.idv2.com/2008/07/11/memcached-002/
- 第3次:http://tech.idv2.com/2008/07/16/memcached-003/
- 第4次:http://tech.idv2.com/2008/07/24/memcached-004/
我是Mixi的长野。memcached的连载终于要结束了。 到上次为止, 我们介绍了与memcached直接相关的话题,本次介绍一些mixi的案例和 实际应用上的话题,并介绍一些与memcached兼容的程序。
阅读全文 »