一台机器升级到了fc5(fedora core 5)
而且安装了系统自带的httpd2.2
需要在上面装一个定制的module
却发现找不到apxs?!
后来才发现原来apxs是rpm包httpd-devel里带的
于是
yum install httpd-devel
就搞定了
某天,碰到个perl的问题
执行某个perl程序的时候(这个程序通过DBD::Mysql连mysql数据库)
出错,具体出错提示忘了
大意思是:
load动态模块mysql.so的时候load其依赖的模块儿libssl.so.5失败(因为没有libssl.so.5这个文件)
我找了下
有/lib/libssl.so.4和/lib/libssl.so.6就是没有/lib/libssl.so.5
libssl.so.4和libssl.so.6其实是openssl的版本0.97a和0.98的东西
我在别的机器上翻了一下,发现/lib/libssl.so.5是openssl版本0.97f的东东
而我现在的系统(fc5, Fedora Core 5)下没有0.97f的openssl
这下好像陷入困境了
再仔细想想:
不对呀,我的DBD::Mysql也是yum装上的呀,如果它依赖于某个东西的话,yum怎么会没自动装上呢
就算某种原因没装上的话装DBD::Mysql的时候也应该会报错才对呀
再仔细看
发现了load的动态模块儿mysql.so是/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi/auto/DBD/mysql/目录下的
而load进这个mysql.so的却是/usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm这个文件
因为我的系统升过级
perl也由5.8.6升到5.8.8
但现在看来新perl(5.8.8) load的还是原来5.8.6下装的mysql模块儿
不对!
于是rpm -ql perl-DBD-MySQL一下
发现原来新的DBD::MySQL装的mysql.so是装在目录/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/下的!!
但是加载DBD::MySQL的时候又怎么会跑去/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi/auto/DBD/mysql/mysql.so这里呢?
看了下/etc/ld.so.conf
发现有目录/usr/lib/
猜想:
会不会因为site_perl比vendor_perl优先被查找(字母’s’比’v'排在前面)
而以前perl 5.8.6的时候也手工安装过DBD::MySQL包
而且装在了site_perl下
所以load的时候就先找到了/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi/auto/DBD/mysql/mysql.so
而那会儿的mysql.so是依赖于libssl.so.5的
而现在系统没有/lib/libssl.so.5,所以出错
解决方法:
把/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi/auto/DBD/mysql/mysql.so删掉
于是问题解决
整合wordpress和gallery2的时候发现的问题
就是有几句E文没能正确翻译成简体中文显示
“Random Image“、”Newest Image“、”Most Viewed Image“,就是这几句
然后如果进gallery后台,把显示语言改成繁体中文
这几句是能正确被翻译的
于是对照简体中文和繁体中文的po文件zh_CN.po和zh_TW.po
发现仅有一点不同
就是zh_CN.po文件关于这几句的翻译前面都有一行:“#, fuzzy”
像这样:
#, fuzzy
msgid “Random Image”
msgid_plural “Random Images”
msgstr[0] “随机图片”
msgstr[1] “随机图片”#, fuzzy
msgid “Newest Image”
msgid_plural “Newest Images”
msgstr[0] “最新图片”
msgstr[1] “最新图片”#, fuzzy
msgid “Most Viewed Image”
msgid_plural “Most Viewed Images”
msgstr[0] “最具人气的图片”
msgstr[1] “最具人气的图片”
然后manual了一下转换po文件到mo文件的工具msgfmt
发现一个参数”-f, –use-fuzzy”
官方解释是:
“use fuzzy entries in output”
于是搞明白了
接着用加-f参数重新跑一下msgfmt
msgfmt -f -c xxx.po -o xxx.mo
重新生成新的简体中文的mo文件
再刷一下页面
OK
搞定了