我安装了至少十几台(或更多)运行CentOS 5.5的服务器,i386和x86_64两种口味都完美无缺.我刚刚设置了两个新的CentOS 5.5 x86_64服务器并安装了God,但是我遇到了一个事件系统错误:
- $tail /var/log/god.log
- E [2011-04-22 12:33:17] ERROR: Condition 'God::Conditions::ProcessExits'
- requires an event system but none has been loaded
- $god check
- using event system: none
- [fail] event system did not load
- $uname -a
- Linux server2.example.com 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
我在任何CentOS服务器上都找不到任何cn或netlink内核模块.然而,我有其他服务器工作正常:
- $god check
- using event system: netlink
- starting event handler
- forking off new process
- forked process with pid = 17559
- killing process
- [ok] process exit event received
- $uname -a
- Linux server1.example.com 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
所有服务器都运行ruby v1.8.6-399:
- # ruby -v
- ruby 1.8.6 (2010-02-05 patchlevel 399) [x86_64-linux]
Ruby来自ELFF回购:
- # rpm -qi ruby
- Name : ruby Relocations: (not relocatable)
- Version : 1.8.6.399 Vendor: Bravenet ELFF <elff@bravenet.com>
- Release : 2.el5 Build Date: Fri Apr 16 18:53:48 2010
- Install Date: Thu Mar 24 11:23:48 2011 Build Host: el-build.local
- Group : Development/Languages Source RPM: ruby-1.8.6.399-2.el5.src.rpm
- Size : 1738695 License: Ruby or GPLv2
- Signature : DSA/SHA1,Fri Apr 16 19:07:49 2010,Key ID 551751dfe8b071d6
- Packager : Bravenet ELFF <elff@bravenet.com>
我做了一点挖掘,可以看到当上帝试图加载Netlink事件处理程序时抛出的异常:
- no such file to load -- netlink_handler_ext
我的服务器之间可能有什么不同?我错过了一些简单的事吗?
netlink_handler_ext是一个红宝石原生扩展,是上帝的一部分.看起来上帝无法加载这些原生扩展,因为它从未被编译过,并且gem从未正确安装,或者它没有被添加到它的加载路径中.
使用“gem env”来检查你的gem环境,你应该能够找到gem的安装位置,并手动检查是否存在原生扩展.