這次手動降級 libchewing
蠻不順利的,一波好幾折,相當混亂,趕緊記下來以免以後又遇到類似問題又得再摸索一次…直接跳到安裝部份請按我。
被據說變得非常順暢且 Bug 274931 好像已經修好了的 KDE4.11 吸引、以及 Evergreen 長期支援版的光環、且聽到都是挺不錯的口碑,於是前天動手把 openSUSE12.3 升級到 13.1,沒想到卻是個頗災難的過程,而且都是些沒有預料過的問題,例如新酷音 (chewing) 就爆掉了…。
在寫這篇之時,openSUSE 13.1 裡面的 libchewing
版本是 0.3.5,但這版本的選字似乎有問題,選字的正確率大幅下降,而且還會選出一堆沒看過的怪字:
我發現錯字剅要(都要)訓練>=3 次纔能(握靠纔能這種古用法 XD)成功逼褟選出正確的自,看起來是根本不鳥我之前的就詞庫(
~/.chewing/udash.dat
)…可是我沒有棟褟才對。…真是吐寫又再亂選字了,棟褟是啥鬼東西我應該從沒選過這種慈才對。
之前用 0.3.4 是正常的,所以看來只能手動降級了。但一開始直接抓 chewing 的原始碼下來編譯卻讓 fcitx 一直沒辦法正確啟動…完全不知該怎麼辦好。
1 | git clone https://github.com/chewing/libchewing.git |
[純筆記] 上面第四行也可以用
ccmake .
,會跳出比較友善的 editor 讓人編輯,再把CMAKE_INSTALL_PREFIX
的值手動改成/usr
。
1 | (INFO-2381 /home/abuild/rpmbuild/BUILD/fcitx-chewing-0.2.1/src/eim.c:104) Chewing storage path /home/kuanyui/.config/fcitx/chewing/ |
幸好有大神,lzh9102 的說法是:
昨天程式 crash 的錯誤訊息代表它存取到錯誤的記憶體位置,這樣的狀況經常是因為 library 和 caller 的版本不合。我昨天都假設是這個原因,但是今天我發現不是這個問題,追蹤程式碼後我發現是因為
/usr/lib64/libchewing
裡面缺了檔案,所以libchewing
根本沒初始化成功。fcitx 後來用了沒有初始化成功的 chewing,所以就 crash 了。
/usr/lib64/libchewing
應該要有ch_index_begin.dat
ch_index_phone.dat
dict.dat
fonetree.dat
ph_index.dat
pinyin.tab
swkb.dat
symbols.dat
us_freq.dat
這幾個檔案,但是從原始碼安裝的不知道為什麼只有其中 3 個檔案。
發現這裡 抓的 libchewing-0.3.4.tar.bz2
可以正常編譯安裝啟動,有夠詭異…
搞了很久,後來發現原因是 cmake
會把檔案移動到 /lib
而不是 /lib64
,而 openSUSE 的 64 bit lib 會放在 /lib64
…改用 autotools
安裝就沒有這個問題, fcitx-chewing
也能正確啟動。
別講那些了,快講安裝方法
總之最後成功安裝的方法是…先安裝好必要的檔案:
1 | sudo zypper in fcitx fcitx-devel |
如果套件管理員把
libchewing
也一起安裝進來,記得把它移除,而且除了fcitx-chewing
以外的酷音chewing
相關套件都不要裝。
然後 clone libchewing
的 repo,checkout 到 v0.3.4:
1 | git clone https://github.com/chewing/libchewing.git |
然後編譯安裝:
1 | ./autogen.sh |
編譯&安裝好後,fcitx -rd
重新啟動 fcitx,大功告成。
fcitx-chewing 呢?
幸運的是 13.1 官方套件庫內的 fcitx-chewing
本身使用是沒有問題的,直接裝下去就可以用,惟酷音的 icon 很是難看,是醜到炸翻的紅色標楷體,所以之前做了一套比較好看的自己用(請自取): 再搭配To-aru Index或To-aru Railgun主題看起來很合適。
問題在於,這個版本的 fcitx 不知什麼原因改不了 icon …以往只需要把 /usr/share/fcitx/imicon/chewing.png
取代掉即可,但現在 fcitx 好像不吃這套,不管怎麼改,跑出來的還是那個噁心的預設 icon,完全搞不懂為什麼 orz
fcitx-chewing
會安裝的相關圖檔應該有這些:1
2
3
4
5/usr/share/fcitx/imicon/chewing.png
/usr/local/share/icons/hicolor/48x48/apps/fcitx-chewing.png
/usr/share/fcitx/skin/default/chewing.png
/usr/share/fcitx/skin/dark/chewing.png
/usr/share/fcitx/skin/classic/chewing.png
但沒有一個是紅色標楷體…用 strace
(監視 system call 用) 找 “png” 或 “chewing” 都沒看到:
1 | strace -f -e open fcitx -rd |& grep 'png' |
~/.kde4/share/icons/
後來直接問 fcitx 開發者:
1 | csslayer: KDE 的話在你的圖標主題裏加個 fcitx-chewing 的圖標 |
KDE4 的 icon theme 位置是在:1
2~/.icons/
~/.kde4/share/icons/
以 KFaenza 這個 icon theme 為例,我最後是丟到這: ~/.kde4/share/icons/KFaenza/fcitx-chewing.png
最後記得要到 KDE system settings 更新一下 icons theme (application appearance > icons > apply
)的快取才會生效。
此次折騰要特別感謝好友兼大神 lzh9102 的耐心協助 (worship)
[2013-12-14 土 11:30] 動筆。
[2013-12-17 火 01:01] 發布。
[2013-12-17 火 04:54] 更新 fcitx-chewing icon 安裝方法。