MacPorts 是一個用於編譯、安裝與管理 Mac OS X 中各類開放原始碼軟體的工具,其由開放原始碼社群負責主導與開發,透過這個工具可以簡化安裝軟體的編譯工作,並且可以自動處理套件相依性問題,概念上很類似 Linux 的 apt 與 yum,只要下達一些簡單的指令就可以輕鬆安裝各種軟體。
Mac Ports 針對目前最新的三個 Mac OS X 版本(OS X 10.9 Mavericks、OS X 10.8 Mountain Lion 與 Mac OS X 10.7 Lion)維護最新的軟體庫,目前包含了超過一萬七千個軟體,總共分成 87 個類別,這些軟體的列表可以從 MacPorts 的網站中查詢,如果你想要安裝的軟體有在這個列表中,就可以使用 MacPorts 來幫助你快速安裝。
以下示範如何使用 MacPorts 來安裝與管理軟體。
安裝 MacPorts
在使用之前,要先把 MacPorts 安裝好。首先確認自己的 Mac OS X 中是否有安裝 Xcode 與 Command Line Developer Tools,若沒有請先安裝這兩個工具。
Xcode 可以從系統的 App Store 中直接安裝,如果是安裝 Xcode 4 以後的版本,在安裝完成後要先啓動一次 Xcode 以便簽署 Xcode EULA 同意書,或是執行:
xcodebuild -license
Command Line Developer Tools 可以從 Apple Developer 的網站下載,下載前必須要使用 Apple ID 登入:
依照自己的系統版本,找到對應的 Command Line Tools 並下載安裝。
如果你會使用到一些 XWindow 的軟體的話,還要再安裝 X11 的環境,比較舊版的 Mac OS X 中有內建這樣的環境,但是到了 OS X Mountain Lion 之後,Apple 把 X11 的支援整個拿掉了,所以比較建議的方式是自己安裝 XQuartz。
如果 Xcode 與 Command Line Tools 都裝好之後,接著就可以到 MacPorts 網站下載它的 pkg 安裝檔。下載時,請依照自己的 Mac OS X 版本選擇適當的安裝檔,目前官方提供的安裝檔有支援 Mavericks、Mountain Lion、Lion、Snow Leopard、Leopard 與 Tiger。
下載完成後,即可直接執行,進行安裝。安裝的過程很簡單,以下是每個步驟的說明。首先是歡迎畫面。
接著解釋 MacPorts 是什麼。
軟體許可協議。
詢問是否同意軟體許可協議,點選同意。
選擇安裝位置。
進行安裝確認。
輸入密碼。
進行安裝。
安裝完成。
在安裝完成後,建議先更新一下,以確保自己系統上的 MacPorts 是最新的:
sudo port -v selfupdate
完成之後,就可以開始使用 MacPorts 了。
使用 MacPorts
若要列出所有軟體的清單,則可使用 list:port list
AppHack @1.1 aqua/AppHack
AppKiDo @0.988 aqua/AppKiDo
AquaLess @1.6 aqua/AquaLess
ArpSpyX @1.1 aqua/ArpSpyX
AssignmentTrackerX @2.0beta3.1 aqua/AssignmentTrackerX
若要搜尋軟體,則使用 search 加上關鍵字搜尋,這樣會從所有的軟體名稱與描述中尋找符合的軟體,例如搜尋 nodejs 則使用:
port search nodejs
nodejs @0.10.21 (devel, net)
Evented I/O for V8 JavaScript
nodejs-devel @0.11.8 (devel, net)
Evented I/O for V8 JavaScript
Found 2 ports.
若要查看某個軟體的資訊,可使用 info,例如查看 nodejs 的資訊則使用:
port info nodejs
nodejs @0.10.21 (devel, net)
Variants: dtrace, python25, python26, [+]python27, [+]ssl
Description: Node's goal is to provide an easy way to build scalable
network programs in JavaScript. Node is similar in design
to and influenced by systems like Ruby's Event Machine or
Python's Twisted. Node takes the event model a bit
further-it presents the event loop as a language construct
instead of as a library.
Homepage: http://nodejs.org/
Build Dependencies: pkgconfig
Library Dependencies: python27, openssl
Conflicts with: nodejs-devel
Platforms: darwin
License: MIT BSD
Maintainers: ciserlohn@macports.org
有些軟體套件會相依於其他套件,若要查看套件的相依性關係,可以使用 deps,例如:
port deps nodejs
Full Name: nodejs @0.10.21_0+python27+ssl
Build Dependencies: pkgconfig
Library Dependencies: python27, openssl
若要安裝指定的軟體套件,可使用 install,例如:
sudo port install nodejs
有些套件會提供一些安裝選項,讓使用者在安裝時可以依照自己的需求調整,若要查詢一個軟體套件所提供的選項,可以使用 variants,例如:
port variants nmap
nmap has the variants:
no_pcre: build without pcre support
no_ssl: build without ssl support
universal: Build for multiple architectures
zenmap: build zenmap in addition to nmap
如果要在安裝時指定一些 variant 安裝選項,則可以使用加號再加上 variant 選項名稱,例如:
sudo port install nmap +zenmap
sudo port install nmap -zenmap
在 MacPorts 安裝軟體時,會產生一些暫時性的檔案,有時候如果安裝上出了一些問題,這些檔案可能會殘存在硬碟中(例如在下載套件時出問題),如果想要把這些檔案清理乾淨,,可以使用 clean,例如:
sudo port clean --all vile
若要移除軟體套件,則使用 uninstall,例如:
sudo port uninstall vile
sudo port uninstall --follow-dependencies vile
如果在移除套件時,該套件還會被其他的套件使用到,那麼系統就會出現訊息告訴你不應該這麼做,並且取消移除的動作,如果你想要連同那些所有會影響到的套件一起移除,可以使用 --follow-dependents 參數,例如:
sudo port uninstall --follow-dependents ncurses
sudo port -f uninstall ncurses
移除 MacPorts
通常在一般的狀況下是不需要移除 MacPorts 的,而且這也是一件比較麻煩的事情,如果真的要移除 MacPorts,首先要移除所有經由 MacPorts 安裝的軟體:sudo port -fp uninstall installed
要將 MacPorts 移除掉,就是把所有 MacPorts 所建立的檔案刪除,例如:
sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports
以上是 MacPorts 的一些入門教學,除了這些之外,其實 MacPorts 還有很多其他有用的指令,若要查詢更詳盡的說明,可以參考 MacPorts Guide 網站。
沒有留言:
張貼留言