解决 Gambit 在 Ubuntu 8.04 中无法启动的问题

最近才用上 Ubuntu 8.04 的一个修改版本,感觉 gnome 的运行速度还不错。同时,显卡驱动的问题也得到了解决。但是,运行 Gambit 却遇到了麻烦。

  1. $ cat /etc/issue
  2. Ubuntu 8.04.1 /n /l

错误信息:

  1. LANG en_US.UTF-8 changed temporarily to en_US for gambit use.
  2. Starting /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit ...
  3. Gambit build SP2006033020.
  4. Warning: locale not supported by C library, locale unchanged
  5. Locking assertion failure.  Backtrace:
  6. #0 /usr/lib/libxcb-xlib.so.0 [0xb2898767]
  7. #1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb28988b1]
  8. #2 /usr/lib/libX11.so.6(_XReply+0xfd) [0xb2b4d1bd]
  9. #3 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit [0x9a650a9]
  10. #4 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit [0x9a6547a]
  11. #5 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit [0x9a63be7]
  12. #6 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit [0x9a642ab]
  13. #7 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit(vgl_OpenGLDevBestVisualX+0x1f7) [0x99b7305]
  14. #8 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/BX.so(vgl_visual+0x2a6) [0xb6a6604a]
  15. #9 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/G.so(_Z16cpp_teleuse_mainiPPc+0x31a) [0xb6173dd2]
  16. #10 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/G.so(teleuse_main+0x1e) [0xb60f782a]
  17. #11 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/BX.so(motif_init+0xfb) [0xb6a65b33]
  18. #12 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit(_Z17local_gambit_mainiPPc+0x2a6) [0x808c972]
  19. #13 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit [0x808d8b3]
  20. #14 /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0) [0xb28d5450]
  21. #15 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit(XMapRaised+0x31) [0x8072bd1]
  22. Locking assertion failure.  Backtrace:
  23. #0 /usr/lib/libxcb-xlib.so.0 [0xb2898767]
  24. #1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0xb289881e]
  25. #2 /usr/lib/libX11.so.6 [0xb2b4c518]
  26. #3 /usr/lib/libX11.so.6(XGetVisualInfo+0x26) [0xb2b430a6]
  27. #4 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit [0x9a647ef]
  28. #5 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit(vgl_OpenGLDevBestVisualX+0x1f7) [0x99b7305]
  29. #6 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/BX.so(vgl_visual+0x2a6) [0xb6a6604a]
  30. #7 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/G.so(_Z16cpp_teleuse_mainiPPc+0x31a) [0xb6173dd2]
  31. #8 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/G.so(teleuse_main+0x1e) [0xb60f782a]
  32. #9 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/BX.so(motif_init+0xfb) [0xb6a65b33]
  33. #10 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit(_Z17local_gambit_mainiPPc+0x2a6) [0x808c972]
  34. #11 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit [0x808d8b3]
  35. #12 /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0) [0xb28d5450]
  36. #13 /opt/progs/x86/Fluent.Inc/gambit2.3.16/lnx86/gambit(XMapRaised+0x31) [0x8072bd1]
  37. gambit: ../../src/xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) - (dpy->request)) >= 0)' failed.
  38. Received exception: SIGABRT (abort signal)
  39. Please send the GAMBIT.15797/jou and GAMBIT.15797/trn files to your local
  40. Fluent office or distributor.  Also send a message including any
  41. relevant errors or warnings you see above in this window.  You may
  42. wish to delete the temporary directory GAMBIT.15797 after sending the
  43. above files.
  44. ERROR: Please retain a copy of the GAMBIT.15797/jou, GAMBIT.15797/trn, and
  45. GAMBIT.15797/*.dbs files, any imported geometry and any relevant
  46. errors or warnings you see above in this window and contact
  47. support at your local Fluent office or distributor.


啊,致命错误啊。先问问 google 大神,于是找到了参考链接中的解决方法。

问题根源:

  1. To get things clear: This is _NOT_ a Bug in libxcb nor is it a bug in Ubuntu or any other modern distribution,
  2. it's a bug in the calling application and in terms of the Matrox drivers, the OpenGL library (libGL.so.1) which
  3. is only distributed in binary format and without sources is too old and therefore incompatible with the latest
  4. libxcb changes.

看来是 libxcb 更新了,无法与旧版本的程序合作。

解决问题的命令。安装旧版本的 libx11。

  1. wget http://mirrors.kernel.org/ubuntu/pool/main/libx/libx11/libx11-6_1.1.1-1ubuntu4_i386.deb
  2. sudo dpkg -i libx11-6_1.1.1-1ubuntu4_i386.deb

为了防止被更新,hold 一下。

  1. $dpkg --get-selections | grep libx11-6
  2. libx11-6                                        install
  3. $ echo "libx11-6 hold" | sudo dpkg --set-selections
  4. $ dpkg --get-selections | grep libx11-6
  5. libx11-6                                        hold

OK 了,运行 Gambit 吧。

PS: 由于用了旧版本的包,会出现较多的包依赖问题。一个解决方法是:直接用旧版本包里的 libX11.so.6 替换系统中
libX11.so.6,这样可以骗过包管理器,更新别的软件也不会出问题。

参考链接: http://forum.tuxx-home.at/viewtopic.php?f=10&p=4040

你可能感兴趣的:(解决 Gambit 在 Ubuntu 8.04 中无法启动的问题)