2011年9月12日

用 MacPorts 管理 Mac OS X 系統的 Open Source 軟體


MacPorts 讓 Mac OS X 作業系統也能輕鬆編譯、安裝及維護開放源碼軟體,它可以自動處理軟體之間的相依性問題,例如有許多軟體使用 gettext 提供多國語言介面,在安裝這些軟體時,MacPorts 會自動檢查 gettext 安裝與否,若有缺少則會自動幫忙補安裝。

這使得軟體的安裝及升級變得非常容易,使用過 Debian/Ubuntu 系列的 apt(-get) 或 RedHat/Suse 系列的 yum 指令,應該都能瞭解一行指令就能安裝/升級/移除軟體是多麼方便的事情。

安裝 MacPorts 非常簡單!

首先依照自己的 Mac OS X 系統版本,選擇相應的檔案下載

把下載的 .dmg 檔打開,在執行掛載後的 .pkg 檔案,按照步驟提示完成安裝,就可以完成 MacPorts 的基礎安裝。

安裝完成後,系統已經提供一個 port 命令列指令。

再來是打開終端機程式,先進行軟體清單更新。

sudo port -d selfupdate

列出所有軟體使用:

port list

如果要搜尋某個軟體,則使用:

port search xeyes
port search lftp

註: xeyes 是X11的一個經典"眼睛"小程式、lftp 是一款功能強大的文字介面FTP檔案傳輸工具。

接下來我們實際安裝一套 geany 軟體,它是一款支援多種程式語言的程式碼編輯工具。

port install geany

整個安裝過程大約花費 5-10 分鐘時間,由於 MacPorts 會幫我們把其他缺少的相依軟體也一起裝上,所以過程中會看到下載不少壓縮檔。

執行起來很順利,中文介面也完全正常(雖然字體長得跟一般 X 應用程式不太一樣)。

geany
Geany is a text editor using the GTK2 toolkit with basic features of an integrated development environment.

雖然 Mac OS X 美輪美奐的介面讓我愛不釋手,但出外使用時偶爾還是會覺得少了些什麼,其實就是在家慣用 Ubuntu Linux 工作桌機,一些已經用習慣的 Open Source 軟體,都要尋找 Mac 版的替代品。但其實只要靠著 MacPorts (或 Homebrew),還是能夠滿足不少需求。

舉例來說,如果你有在研究 NodeJS,而且跟我一樣懶得編譯、每次更新版本都要重新下載,就可以靠 MacPorts 解決:

port search node

nodejs @0.4.11 (devel, net)
Evented I/O for V8 JavaScript

nodejs-devel @0.5.6 (devel, net)
Evented I/O for V8 JavaScript

nodejuice @1.5.0 (www)
A web development tool to autorefesh the browser on changes.

npm @1.0.27 (devel)
node package manager

看到了嗎?很新的 0.5.6 (unstable)版已經有提供了。

MacPorts 有所謂的 metaport,也就是這個套件並沒有實際的檔案內容,只是定義其他相關套件的依賴,方便一次安裝整套的相關軟體,例如「texlive」就是一個 metaport。在安裝 texlive 時會自動裝上其他相依的套件如 texlive-basic、texlive-latex 等,但是在移除 texlive 時並不會同時將相依的套件一併解除安裝,這種情況需要手動清理:

sudo port uninstall leaves

其中 leaves 就是代表某套件移除後遺留下來的相依套件(通常可以放心移除)。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!