I was looking to diagnose a high load problem today. For this, I typically use atop. However, I got this output instead...
[root@myserver ~] # atop: symbol lookup error: /lib/libncurses.so.5: undefined symbol: _nc_set_no_padding
I'm running CentOS 6.2, with atop installed from the EPEL repository so I figured it should work. I started looking for another answer. Google is your friend in all such cases, and I found this bugzilla report which implicates zend. Since we are in fact using zend, I thought I would verify the issue.
[root@x-web-01v lib]# which atop
/usr/bin/atop
[root@x-web-01v lib]# readelf -d $(which atop) | fgrep NEEDED
0x00000001 (NEEDED) Shared library: [libncurses.so.5]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libz.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [libtinfo.so.5]
[root@x-web-01v lib]# ldd $(which atop)
linux-gate.so.1 => (0x0016b000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00b7e000)
libm.so.6 => /lib/libm.so.6 (0x00e5d000)
libz.so.1 => /lib/libz.so.1 (0x0072e000)
libc.so.6 => /lib/libc.so.6 (0x0016c000)
libtinfo.so.5 => /usr/local/zend/lib/libtinfo.so.5 (0x00110000)
libdl.so.2 => /lib/libdl.so.2 (0x00e21000)
/lib/ld-linux.so.2 (0x004f6000)
[root@x-web-01v lib]# nm -D /lib/libncurses.so.5 | fgrep _nc_set_no_padding
U _nc_set_no_padding
So, sure enough, zend has hijacked libtinfo.so.5. How to fix this - edit /etc/ld.so.conf and add the path to /lib (or /lib64 for 64-bit OS) at the top:
[root@myserver ~]# cat /etc/ld.so.conf /lib/ /usr/lib include ld.so.conf.d/*.conf
I added /usr/lib for good measure. Run ldconfig to make the changes live.

