這兩天實在有種想把手上的機器砸了的衝動。
一、如果您用的是使用 PowerPC CPU 的麥金塔電腦,作業系統是 Mac OS X 10.5 Leopard,也安裝了 Xcode 3;如果您要編譯一些 C 或是 C++ 程式(例如 OpenVanilla 的各個外掛模組),編譯成供 ppc 使用的二進位檔案,請不要使用 /usr/bin/ 底下的 gcc 以及 g++,請改用 /Developer/usr/bin 目錄下的程式;後者是正常的,前者則是爛的,會跳出這樣的訊息:
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed
Installed assemblers are:
/usr/bin/../libexec/gcc/darwin/ppc64/as for architecture ppc64
/usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64
但是,如果是在 Intel CPU 主機上,則沒有這個問題。(非常好奇蘋果內部的開發者是不是已經沒有人在用 PowerPC 主機。)
二、Leopard 有兩項新的設計。一是新的輸入法架構 Input Method Kit(簡稱 IMK),不同於之前輸入法是一個 System Component,透過 IMK 設計的輸入法,是一個應用程式 Bundle,放置在 /System/Library/InputMethods 或 /Library/InputMethods 目錄下;換言之,輸入法不再是每開一個應用程式時載入一份資料,而是一開機時、或是第一次用到某個輸入法時,就會像打開其他應用程式一樣,打開輸入法。
其二則是,為了系統安全的緣故,系統會偵測你的應用程式是不是從網路上下載來的。如果你從網路上下載了一個應用程式,在第一次打開的時候,會跳出一個視窗,警告你這是從網路上下載來的,詢問你是否確定執行這個程式;同時,這個警告訊息會攔截、並且鎖死所有的鍵盤與滑鼠事件,你也無法切換到其他應用用程式。在你按下了確定按鈕之後,才會繼續執行。
所以,如果你安裝了一個屬於 IMK 架構的輸入法應用程式 Bundle,你又從網路上下載了這個輸入法的新版本,直接把新的 Bundle 拖拉到 /Library/InputMethods 目錄下,取代了原有的 Bundle,立刻登出,然後重新登入。如果是在 Intel Mac 上,會正常跳出警告訊息,詢問你是否要執行這個從網路上下載的應用程式 Bundle,按下確定之後,你就可以快樂打字了。
但如果你用的是 PowerPC Mac,卻不會跳出警告訊息,但是系統還是一樣鎖死各種鍵盤與滑鼠輸入,你就只覺得整台機器完全當死,你也沒有辦法切到 Finder 把輸入法 Bundle 砍掉,重新開機之後一樣卡死在同樣的地方,叫天不應叫地不靈。
遇到這個狀況時,可行方式有二:其一是開機之後,從另外一台機器透過 ssh 或是其他方式連入主機後,刪掉剛剛安裝的輸入法 Bundle—但是你可能根本沒有把這些服務開起來;其二是重新開機之後,按下熱鍵,進入 single user mode後刪除—但是你可能根本不記得進入 single user mode 的熱鍵是什麼,手邊也剛好沒有別的機器可以上網,讓你可以查到熱鍵是 cmd + s。而要避免這種狀況,就是在下載了新的輸入法應用程式 Bundle 後,就先用滑鼠點兩下,先執行一次—但是誰會沒事做這種事情。
如果你是 Mac 上面的輸入法開發者,在這邊分享一些慘痛經驗:就算你把輸入法寫成了應用程式 Bundle,但是,千萬記得,請用 Package Maker 把輸入法打包成 Installer Package。不過,Leopard 的 Package Maker,又有其他的問題啊…。
岔題一下,OpenVanilla還是會繼續支援10.4吧?我覺得手上這台ibook似乎就會跟老虎終老一生了…
最近總覺得進入太極生兩儀、兩儀生四象、四象生八卦的境界啊…。
Mac 分成 PPC 與 Intel、架構分成 10.4 與 10.5、還要分成 32bit 與 64 bit…。
聽起來,離128境界不遠矣……。
(消波塊還是比較單純啊~)
推了一下,你明天的運會更順喔。這些難不倒棕大的啦~~
打錯了,是明年……拍謝。
OpenVanilla 0.8.x 會繼續支援 10.4。
一時眼花 還以為松柏兄轉性成x86狂人 在pc上跑小豹
不過我同為成大人的前同事一直慫恿我把core 2 duo santa rosa 的NB灌小豹跑64bit… 目前還在嘴砲階段
非常奇怪,我在制作FIT for Leopard的时候为什么没有遇到这个问题……
那是因为你的开发环境有问题,leopard是darwin9核心,而你的日志显示是darwin8