解決 Mac OS X 升級 Lion 之後不相容的情況


在美國時間 7/20 號,眾所期待的 Lion 終於出現在 App Store 上了,這也是 Steve Jobs 自豪的 Delta update,4GB 的 OS 升級檔完全透過 App Store 這單一管道取得。有著 SSD 的加持,下載+安裝大概花不到我兩個小時,而且整個系統出現的衝突比我預期的低非常之多,反而在我身上出現的問題竟是「文字編輯」與「預覽程式」!這也是我寫這篇文章的原因,就怕哪天重灌 Lion 又遇到相同的狀況…(希望不要),至於新系統的習慣問題,則可以參考這篇文章

普遍都會遇到的相容性問題

在安裝過程之中,所有不相容的都會被丟到根目錄「不相容的軟體」之中,而在這一個版本,正是終結的 PowerPC 以及所有 PPC 的應用程式,如果執行的話,會直接告訴你這軟體已不再被支援。
Parallels Desktop 6:如果不做任何修改,不但會告訴你你的 BIOS 沒有開啟虛擬化技術,不能修改,網路上大家都有提供了解法,只要把以下的 Script 複製到終端機中貼上執行即可開啟 VM。

sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_hypervisor.kext" sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_hid_hook.kext" sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_usb_connect.kext" sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_netbridge.kext" sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_vnic.kext"
執行結果都會有 Warnings,請忽略它。開機之後,會發現仍然沒辦法上網,這時候就去設定中,把網路改為 Bridge Network 中的 Default Adapter,就大功告成啦!

權限錯誤:「文字編輯」與「預覽程式」

剛安裝完畢,只要我開啟文字編輯或是預覽程式,都只會在 Dock 下跳幾下就消失了,就算是在終端機下想看它的錯誤訊息,也只有顯示出 bad instruction 的錯誤,完全無法理解是什麼原因。最後發現如果我用 root 執行這兩個程式,都可以順利的打開!但是我這兩個程式中每個檔案都沒有錯誤啊?!之中不斷嘗試的過程就不提了,最後的猜測應該是程式在初始化過程中對某個不屬於你的檔案做讀取或是寫入動作。

修復權限是萬靈丹?!

大部分網路上都會說萬一程式打不開或是彩球一直轉,修復權限就對了!其實只對了一半,大部分這種錯誤下的確都是因為權限錯誤而產生的,但是修復權限工具不會去亂更動你所設定好的使用者&群組。通常只會針對系統已經內建好的資料夾做修正,例如如果你的 TextEdit.app,如果權限是

drwxrwxrwx 3 USER staff 102B Jun 17 10:38 TextEdit.app
它才會發現跟原本的不一樣而修正回
drwxr-xr-x 3 root wheel 102B Jun 17 10:38 TextEdit.app
也就是說,有太多太多的例外是沒辦法透過修復權限解決的!

Mac 中的內建群組

那麼遇到這種情況我們該如何解決?既然我們要自行設定回正確的權限,那麼我們就得理解 Mac 中群組概念,基本上有三大群組:

  1. staff:包含所有使用者(root、Administrators、Standard Users)。
  2. admin:包含有管理者身分的所有使用者(root、Administrators)。
  3. wheel:只有 root 一個使用者存在。

其中比較特別的是 root,預設是沒有這個使用者的,在 Lion 中我們得透過目錄工具程式啟用 root 帳號

open /System/Library/CoreServices/Directory\ Utility.app
在程式最上方清單->編輯->啟用 Root 使用者。

手動設定權限解決問題

在 Mac 中,只有少數目錄是預設為 root:wheel 的,而這種通常都會被修復權限所檢查出來,而今天我所遇到的問題我猜測是因為過去系統移轉太多次,甚至還常常更動到使用者名稱,導致有些檔案的擁有者可能是根本已經不存在的使用者!遇到這種問題最一勞永逸的方式就是:

sudo chown -R USER:staff ~/*
把所有自己家目錄下的所有檔案及目錄都分享給全部使用者(當然給群組的權限則是要另外透過 chmod 設定,這解法假設這些設定並沒有錯亂或是可透過修復權限修正),再把不想跟其他使用者共享的檔案設定為
sudo chown -R USER:admin FILE1 FILE2 DIR3
最後執行修復權限即可大功告成! 其他典型的權限修復方式:
  1. 更改使用者簡稱:先把自身家目錄改名存放在別的地方,刪除使用者後,透過新增使用者名稱與家目錄相同就會進行合併的動作修正。
  2. 系統移轉輔助程式:開新帳號,透過 Time Machine 回復使用者資料。
  3. 重新安裝系統並且透過 Time Machine 回復整個系統。
  4. 重新安裝一個乾淨的作業系統(大絕招XD)。

為什麼 Lion 不零售安裝光碟也不教讓大家燒錄可開機光碟?

這是因為在 Lion 中的新功能「Recovery HD」,只要透過開機時按著「Cmd+R」不放,就如同往常透過光碟開機一樣會進入修復模式,可以在這個模式上網、使用終端機、格式化磁碟或是重新安裝作業系統。當然如果需要的話,還是可以偷偷把套件檔抓出來製作可開機隨身碟啦XD。

如果你遇到的問題完全沒有在這篇出現,也可以參考「Lion Problems and fixed」。