2007年10月1日 星期一

C++ ABI problem

老實說,這個問題實在很奇妙。

在Ubuntu 7.04底下,如果不安裝ATI顯示卡的專有驅動程式,那大多應該能平安無事的執行日常的作業。然而因為需要執行Google Earth或玩遊戲,必須安裝ATI FGLRX驅動程式,但其他的問題卻接踵而來。首先就會碰到的就是OpenOffice無法正常執行,再者透過Ubuntuzilla安裝的最新版Thunderbird也跑不出畫面。這些問題都始於C++ ABI,那要如何解決呢?

因為ATI FGLRX驅動程式和SCIM相衝,移除FGLRX顯然不是個好辦法,因此得從輸入法下手,而Ubuntu的套件庫中,提供了一個名為scim-bridge-agent的套件,這個套件是用C語言寫成的,專門用來解決C++ ABI衝突的問題。安裝了此套件之後,需要修改/etc/alternatives/xinput-zh_TW這個檔案。將GTK_IM_MODULE="scim"中的scim改為scim-bridge,存檔之後重新啟動GDM(Ctrl + Alt + Backspace)或者重新啟動電腦即可。