管理器優先

在一整晚——真的是一整晚的奮鬥之下,我總算成功卸載了 CMake

一切開始於不久前,我拿到我這台Macbook Pro的時候。我安裝了一些“裝機必備”的東西,其中就有 Homebrew 。我還算愉快地把玩了一番。說是把玩,那時候我唯一安裝的 brew 也只有 gcc-4.7,用來代替 Xcode 提供的古董 gcc-4.2 而已。

好景不長,我後來在 Data Structure 課上想要調試代碼的時候卻發現,OSX 默認的 gdb 無法調試 gcc-4.7 所編譯的程序。無奈之下,我只好用回默認的 gcc-4.2 ,發現也没什麼大問題。那我還要 Homebrew 做甚呢?

於是就有了前晚的掙扎。這深刻的教訓告訴我,無論什麼時候,程序管理器都是該最先安裝,最後卸載的。

第一個問題出在 libgit2 。我運行 brew doctor 重新安裝 Homebrew 的時候,跳出了 Unexpected dylib 的錯誤。本來我就打算換成 Homebrew 版的,但問題是,怎麼換?找了許久也不見卸載的教程。不得已,我新開了一個 issue@vmg 在几分鐘後回復了我,帮我找到了安裝記録,在此感謝。手動刪除的步驟就不提了。

接下來纔是正題。Brew 安裝 MacVim 的時候,HomebrewCMake 作為前提安裝了,但因為我此前自己安裝過一次 CMake ,所以 Homebrew 無法鏈接新安裝的版本。

想着“也換成 Homebrew 版算了”,準備卸載的時候,發現這又是一個坑爹貨。官網github頁面都没有任何卸載說明,連 issue 那樣的溝通手段都没有。

能用的只有剛剛學到的 make uninstall 了。直接運行 cmake uninstall 提示 CMakeCache.txt 損壞。“什麼玩意?”我明明看見了 cmake_uninstall.cmake ,說明並非如 libgit2 一樣缺失目標。

仔細閱讀了當初編譯時用的 bootstrap 脚本後,我總算明白了。“還挺精巧的嘛,用自己編譯自己。”重新運行 bootstrap ,又遇到了 CMakeCache.txt 錯誤。我找來源包對比,發現只是個臨時文件,就放心刪除了。接下來果然成功引導了 CMake ,運行 cmake uninstall 卸載了本機的版本。遇到 Permisson Denied 加了 sudo

總算!brew link cmake 成功了。