卸载以下两个包的时候,可能有依赖问题无法卸载,在后面添加 --nodeps 参数强制卸载,以fedora 8为例,将其里面的包:
libX11-1.1.3-4.fc8.i386.rpm
libX11-devel-1.1.3-4.fc8.i386.rpm
安装以下两个rpm包,到rpm serch网站下载这两个rpm包。
2,自己修改java程序代码,其主要原因是:libX11-1.0.3-8.fc7.i386.rpm
libX11-devel-1.0.3-8.fc7.i386.rpm
The libxcb package provides an interface to the X Window System protocol, which replaces the current Xlib interface. Xlib can also use XCB as a transport layer, allowing software to make requests and receive responses with both.
从linuxfromscratch.org上面找到的说明,竟然是xlib的界面换到xcb库里了,而设计xcb的牛人们又严格得紧,非要在某个源文件 的第50行加一个assertion,弄得从前“不按标准设计”的程序都运行不了啦 我只是没想到java的swing库也是其中之一
解决方法嘛,直接在libxcb的源码里把那个assert注释掉然后重新编译再安装就行了,又或者在编译的时候给gcc加个-DNDEBUG选项。注意 如果用源码安装的话是会损害之前安装的版本的(无法通过删除复原) 所以,如果你像我一样是软件包主义者,不希望让自己都没办法记得放在哪的软件污染你 的运行环境的话 又或者在用一个64位的系统,但是又要运行32位程序的话 建议等“按标准设计”的新版程序出来再说。
3,以上是网上搜集的办法,其实早在yum库的最新development中就有了更新的libcx包,仍然以fedora 8为例:
yum --enablerepo=development update libxcb这样就解决问题了,
export LIBXCB_ALLOW_SLOPPY_LOCK=1
[root@localhost ~]# rpm -qa|grep libxcb呵呵,发现fedora 9也出来了。
libxcb-1.1-1.fc9
libxcb-devel-1.1-1.fc9