LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1443|回复: 3

X 裡的 libxcb 正一小雜種!

[复制链接]
发表于 2010-3-28 12:14:10 | 显示全部楼层 |阅读模式
自去年這個時候成功升級 Xorg-7.2 後,事隔一年心思思又想再升級,但我不想像去年那樣大規模,而是想局部進行,豈料出事了!

Xorg 裡有一個 xcb 的 library,由 1.1 升級至 1.4 (最新版是 1.5)後不以為矣,由於 paco 基於安裝記錄,能辯認不 common 的檔案於是於心把舊版刪除(即是兩版不重覆的部份去掉),結果真是意外"驚喜",X 重此掛掉!不單本機不能起動 X,就是由遠程 NX 連線也不行,皆因所有窗口都無法生成而引致起動失敗!

錯誤信息大致是 libxcb-xlib.so.0: undefined symbol: _xcb_lock_io
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed Mar 24 16:34:16 2010
(==) Using config file: "/etc/X11/xorg.conf"
expected keysym, got XF86Battery: line 59 of inet
expected keysym, got XF86WLAN: line 60 of inet
expected keysym, got XF86TouchpadToggle: line 122 of inet
expected keysym, got XF86Suspend: line 175 of inet
expected keysym, got XF86AudioForward: line 178 of inet
expected keysym, got XF86Battery: line 206 of inet
expected keysym, got XF86Bluetooth: line 207 of inet
expected keysym, got XF86WLAN: line 208 of inet
expected keysym, got XF86Hibernate: line 215 of inet
expected keysym, got XF86Battery: line 59 of inet
expected keysym, got XF86WLAN: line 60 of inet
expected keysym, got XF86TouchpadToggle: line 122 of inet
expected keysym, got XF86Suspend: line 175 of inet
expected keysym, got XF86AudioForward: line 178 of inet
expected keysym, got XF86Battery: line 206 of inet
expected keysym, got XF86Bluetooth: line 207 of inet
expected keysym, got XF86WLAN: line 208 of inet
expected keysym, got XF86Hibernate: line 215 of inet
[color="Red"]xinit: symbol lookup error: /usr/X11R7/lib/libxcb-xlib.so.0: undefined symbol: _xcb_lock_io
d00m3d@BlackMesa:~/BLFS-sources/xc/lib$ expected keysym, got XF86Battery: line 59 of inet
expected keysym, got XF86WLAN: line 60 of inet
expected keysym, got XF86TouchpadToggle: line 122 of inet
expected keysym, got XF86Suspend: line 175 of inet
expected keysym, got XF86AudioForward: line 178 of inet
expected keysym, got XF86Battery: line 206 of inet
expected keysym, got XF86Bluetooth: line 207 of inet
expected keysym, got XF86WLAN: line 208 of inet
expected keysym, got XF86Hibernate: line 215 of inet
expected keysym, got XF86Battery: line 59 of inet
expected keysym, got XF86WLAN: line 60 of inet
expected keysym, got XF86TouchpadToggle: line 122 of inet
expected keysym, got XF86Suspend: line 175 of inet
expected keysym, got XF86AudioForward: line 178 of inet
expected keysym, got XF86Battery: line 206 of inet
expected keysym, got XF86Bluetooth: line 207 of inet
expected keysym, got XF86WLAN: line 208 of inet
expected keysym, got XF86Hibernate: line 215 of inet

d00m3d@BlackMesa:~/BLFS-sources/xc/lib$


上網搜尋一下原來此問題非常普遍,就連 gentoo 也有專文報導:

http://www.gentoo.org/proj/en/de ... 4-upgrade-guide.xml
2.  Fixing broken libtool archives

While the update may be over and your system may still work, emerging new packages or updates might yield a few unpleasant surprises, due to libtool's infamous archives : .la files.

The problem is that until recently, libX11 used a private libxcb library called libxcb-xlib.so, created specifically for libX11. While that is no problem in itself, this tiny library polluted (almost) every single .la file on your system. That's how libtool works.

But this is now turning into a problem since newer versions of libxcb no longer ship this library (and libX11 was fixed accordingly, of course). We now need to get rid of all references to this library within .la files.

To do so, just run /usr/portage/x11-libs/libxcb/files/xcb-rebuilder.sh to fix all .la files on your system.

The tool will also report whether shared libraries (.so files, usually located in /lib and /usr/lib) still reference the now defunct library. If the tool reports broken packages, please read on. If not, lucky you, your system is ready to go

Gentoo 此文真是一矢中的,別看小此細小的庫,它把整個 X 裡的庫都污染了!

唉~~現在 X 掛掉,剛好備份系統的移動硬盤又沒帶上,只能到下週才能修理了 :X
发表于 2010-3-28 21:08:26 | 显示全部楼层
偶比较懒,直接构建全新系统,或者仅升级 X server 部分。
部分升级的话,一般没必要升级 X client 部分,代价太大。

其实主要是 libtool 问题,libxcb 有些冤。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-25 21:02:32 | 显示全部楼层
問題終於"解決"了,硬盤故障,找出年頭的備份"重灌",那時的 libxcb 還未動過

看來下次要升級 Xorg 又要大幹一場了 :(
回复 支持 反对

使用道具 举报

发表于 2010-10-26 09:36:03 | 显示全部楼层
小弟也有意升级一下系统,看最近很多软件都更新了,心痒了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表