2013年7月13日

解決 OSX 10.6 中安裝 SVN 與 Git 的 zlib 問題

對於 Mac 平台的 Java 應用系統開發者來說,安裝與使用 SVN 或 Git 是工作的一環;網路資源有許多資訊可供快速建置,如:How to Install Xcode, Homebrew, Git, RVM, Ruby & Rails on Snow Leopard, Lion, and Mountain Lion

然而,對我這個 Snow Leopard 用戶來說,就沒這麼順利了;原因在於過去安裝過的 package 歴經硬碟換裝、備份、移除...等,有些開發工作上一些少用的東西不復存在,而且 Apple Developer 網站也不再有與 Snow Leopard 相關的檔案下載資源。直觀上自然會借助 Homebrew 工具來安裝 SVN 或 Git。然而卻出現以下情形:
沒有 zlib 啊~。據了解它就在那些沒有下載支援的 Command Line Tools 中,而早些時候 Xcode 安裝上卻未在預設之列。
索性,open source 還存在,很高興地前往下載:
咦?zlib 下載連結在哪裡?source 路徑還在呀(.../source/zlib/zlib-6),該不會要 file by file 下載吧?!
察看別的 source,路徑規劃的很一致(/source/cvs/cvs-42):
那看看它的下載路徑(.../tarballs/cvs/cvs-42.tar.gz):
就來比照辦理吧!在瀏覧器上輸入 URL:.../tarballs/zlib/zlib-6.tar.gz
成功下載了。接著就解開 zlib 壓縮檔、編譯與安裝:
cd zlib-6
make clean
./configure
make
make install
最後再重新用 brew 安裝 SVN 與 Git:

That's it!

但, 透過 brew 指令裝 subversion 沒有成功:
brew install --universal --java subversion
那只好自己手動解開 cached 下載檔 /Library/Caches/Homebrew/subversion-1.8.0.tar.bz2
接著:
make clean
./configure --prefix=/usr/local/Cellar/subversion/1.8.0 --with-apr=/usr/bin --with-zlib=/usr/local --with-sqlite=/usr/local/opt/sqlite --with-serf=/usr/local/opt/serf --disable-mod-activation --disable-nls --without-apache-libexecdir --without-berkeley-db --enable-javahl --without-jikes
make
make install-javahl
brew unlink subversion
brew link subverion
但不幸的是,v1.8.0 不適用於 OSX 10.6,做了白工。
而接下來的解法有兩種:
(1) 使用人家做好的 package 來安裝。(它會安裝在 /opt 下,而不是一般的 /usr/local 下)
(2) 下載 v.1.6.7 的 formula file:subversion.rb 放到 /usr/local/Library/Formular ;再做一次 brew install

別忘了檢查 /Library/Java/Extensions 下有沒有 libsvnjavahl-1.jnilib 的 symbolic link,沒有的話就自己建立,再設定 IDE (如:eclipse) 的 SVN interface 即完成: