今天才注意到,FreeBSD的ports已经升级使用svn了

公司一台开发机,5年前攒的,中间换过一次电源风扇,其他时间因为意外断过几次电,一直开着用到今天还很稳定,5年前安装的FreeBSD7.2的系统,升级过几次内核,最近280多天未重启也没升级,今天安装新的音频解码包的时候,发现官方的ports树已经早就更新为使用svn了,早前使用了很多年的cvs终于走到了尽头,真是个很好的进步啊! 也不知道身边还有多少人在用FreeBSD作为服务器系统,感觉有点孤独,国内的好几个cvsup镜像站貌似都已经不再维护,一度很好用的163的镜像站也不能访问了,其实FreeBSD真是很优秀的服务器系统,开发团队也是很伟大的,辛苦你们了!

Continue Reading →

牛逼的GMP数学运算库

搞了一晚上,搞定了一个需要使用无限长度数字运算的产品功能开发,实现权限模块的处理,使用了gmp库来完成,效果一级棒,性能好不好还不知道,不过好在不是用在高性能要求的部分,好久木有今晚这样的为了搞定一个问题而钻研的劲头了。 顺便记录一下,如果要在BSD系统下的PHP中使用GMP库,不要安装最新的5.0.x版本的GMP库,4.2.4以下的版本最好,要不编译不过去的! 当前功能中实际使用到的最大数字是 18446744073709107172 ,二进制的结果是如此惊人的长度: 1111111111111111111111111111111111111111111110010011011111100100

Continue Reading →

把FreeBSD下的硬件RAID去掉

几年前的一台服务器,intel s3000ah的板子,自带Intel Matrix Storage和LSI的raid,不过这个板子的raid对freebsd不支持,当初勉强使用Intel Matrix Storage的模式设置了raid 1 安装了BSD的7.2, 事实上并不是真正的好使,raid经常掉,bsd下的raid管理工具atacontrol也不能进行detach和attach的,勉强认为freebsd能认识设备ar0而已。 机器前几天终于挂了,出现的情况是raid1的两个磁盘都显示了offline,用过Intel Matrix Storage的就知道,CTRL+I进去后,其实是啥也干不了的,这个板子如果在windows下,或者用板子自带引导盘也是可以干点啥的,在bsd下,Intel Matrix Storage就是狗屎一坨。 按照过去的经验,通常这样的情况都是重装系统完事,但是因为人不在现场,David帮我跑去机房看看情况,于是乎抱着试试看的态度,尝试看看是否可以从硬件和软件下把raid禁用了,用一块盘当作普通sata来运行原理的系统,省得重装系统,配置和恢复数据麻烦,没想到一试居然成功了,下面把大致的经过分享给大家,希望对大家有参考作用。 首先,到bios里面,把raid禁用了,然后重启机器,正常的话能看到freebsd的引导了,但是这会儿是不能正常进入系统的,半道儿上就会停住,告知ar0…啥的设备问题。 在freebsd引导菜单中选择进入单用户模式 进到单用户模式的shell环境下后,因为/usr /var 啥的分区都没能挂载,而使用mount…

Continue Reading →

pecl 升级 sphinx 到新版

转载请注明出处:[Michael`s blog] http://www.toplee.com/blog/1385.html 用pecl upgrade sphinx 命令 可以方便的完成php中sphinx模块的升级,但是这并不表示能够sphinx模块会自动增加官方描述里面的那些新特性,比如1.0.1版本里面增加了 setSelect()方法,1.0.3增加了open(), close()等方法,这些方法并不是通过 pecl upgrade就能得到的,原因是sphinx模块编译的时候需要调用的库 libsphinxclient 还需要升级更新,它们默认存在于 /usr/local/lib目录下,包括 libsphinxclient.so, libsphinxclient.a 等文件,如何升级这些库呢? 记得一定要使用和您sphinx版本一致的libsphinxclient,否则容易出问题的,至少不能高于,我就遇到了类似如下的错误提示: client…

Continue Reading →

SNMP的snmpd: symbol lookup error: snmpd: undefined symbol: smux_snmp_select_list_get_length错误处理

这次在Redhat上搞SNMP的时候,遇到service snmpd restart时总是出现启动成功,但是其实是没有成功的假象,系统日志里面也没有报错,搞了半天不得头绪,通过调试 snmpd -f -Le -Dread_config 得到错误信息: snmpd: symbol lookup error: snmpd: undefined symbol: smux_snmp_select_list_get_length 通过查阅若干文档,终于发现是系统中安装的 net-snmp-libs 有问题,于是下载最新版重新安装,搞定之! 小问题耽误很多时间,有些懊恼!

Continue Reading →