使用MacPorts(在Mac中) 有你喜歡的開源應用程式


作者:Seth Kenlon
出處:opensource.com
文章連結: https://opensource.com/article/20/11/macports


MacPorts是取得開源應用程式‚並在macOS上進行更新的一種簡易方式。


■ 圖片來源: freephotocc通過Pixabay, CC0(知識共享組織發布的版權)

「套裝軟體管理器」(package manager)是安裝、升級和卸載應用程式軟體的通稱。「套裝軟體管理器」的命令就像在Linux dnf 或apt 或是在BSD上用pkg_add命令一樣‚甚至Python 中pip和Lua 中luarocks的命令 ‚能瑣碎將用戶者需要的新的應用程式命令‚加在用戶的系統中。一旦你嘗試使用它‚你可能會發現很難在生活沒有它‚這是每個操作系統應該包含這樣的便利。並非所有軟體都會這樣做‚但開源社群是傾向且確保‚將電腦最佳思想傳送到所有平台上。

這有幾種專為macOS設計的套裝軟體管理器(package manager)‚其中最古老的套裝軟體管理器之一是MacPorts專案。

達爾文(Darwin)作業系統和MacPorts套裝軟體


當Apple 在本世紀轉向Unix時‚它實際上建構一個命名為Darwin的Unix作業系統。此後不久‚一群足智多謀的駭客立即著手一個名為OpenDarwin的專案‚是創建達爾文(Darwin)的獨立分支。他們希望OpenDarwin 和Apple 開發人員可以使用相關的代碼庫‚並在使用時可彼此借用。可惜的是‚OpenDarwin並沒有在Apple中受到歡迎‚它終告結束。然而‚OpenDarwin的套裝軟體管理器專案MacPorts仍然運行良好‚並且繼續為macOS提供出色的開源軟體。 MacOS已經有一套健全的預設終端命令‚其中一些是從GNU借來的‚一些是從BSD借來的‚還有一些是專門為達爾文(Darwin)編寫的。你可以使用MacPorts添加新命令‚甚至添加圖形應用程式。


安裝MacPorts


你的mscOS版本顯示你需要哪個MacPorts套裝軟體安裝程式。因此‚首先‚取得你正在運行的masOS版本:
$ curl https://distfiles.macports.org/MacPorts/MacPorts-2.6.3-10.14-Mojave.pkg
\
--output MacPorts-2.6.3-10.14-Mojave.pkg


下載安裝程式後‚你可以雙響(double-click)來安裝它或使用終端安裝它:
$ sudo installer -verbose \
-pkg MacPorts*.pkg
-tgt /


配置MacPorts


套裝軟體安裝後‚必須將相關路徑加在你的系統中‚以便你的終端知道在哪可找到新的MacPorts 命令。將路徑加到MacPorts‚並將手冊頁加到你的PATH環境變數中‚將其加在~/.bashrc:
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH


加載到新環境:
$ source ~/.bashrc

運行更新‚以便你的MacPorts安裝軟體最新版本:
$ sudo port -v selfupdate

使用MacPorts


使用MacPorts
一些套裝軟體管理器的預先建構的軟體會從服務器安裝到本地系統。這叫做二進制安裝‚因為它會安裝已編譯可執行二進制文件代碼。其他軟體管理器(包括MacPorts)從服務器來取得源代碼‚將其編譯為電腦上二進制可執行文件‚然後將其安裝在正確的目錄中。最終結果是相同的:你擁有所需要的軟體。

它們到達的地方是不同的。

兩種方法都有優點。因為異動需求是將文件從服務器複製到電腦上‚所以二進制安裝更快。這是Homebrew對其「瓶子」(二進制形式稱為瓶子)所做的事情‚但有時無法重新定位的版本問題。從源代碼安裝意味你可以輕鬆的地修改軟體的建構方式和安裝位置。

MacPorts提供port 命令‚並叫它打包通訊埠(port) (來自NetBSD的 Pkgsrc 和FreeBSD得通訊埠(port)系統等項目的繼承術語)。典型的 MacPorts 工作流程是搜索應用程式‚然後安裝它。

搜尋應用程式
如果你需要安裝你所知道特殊命令或應用程式‚要搜尋確保它在MacPorts樹中:
$ sudo port search parallel

預設情況下‚port搜尋套裝軟體的名稱和敘述。你通過添加name選項下‚你可以搜尋名稱欄:
$ sudo port search --name parallel

你可以使用通用外殼「通配符」(wildcards)來使搜索「模糊」。例如‚parallel僅在名稱欄開始進行搜尋
$ sudo port search --name --glob "parallel*"
列出所有通訊埠(port)

如果你不知道要搜尋什麼‚而且你要看所有的套裝軟體(或在MacPorts和BSD術語「通訊埠」(port)‚請使用list次命令:
$ sudo port list

這列表是很長但完整。當然你可以重定向到文本中以供參考或通過導管傳遞給文本more或less 進一步檢查:
$ sudo port list > all-ports.txt
$ sudo port list | less


取得有關套裝軟體的資訊


你可以使用info次命令取得有關套裝軟體的所有重要明細:
$ sudo port info parallel
parallel @20200922 (sysutils)

Description: Build and execute shell command lines from standard input in parallel
Homepage: https://www.gnu.org/software/parallel/

Library Dependencies: perl5
Platforms: darwin
License: GPL-3+
Maintainers: Email: example@example.com


萬一你需要更多資訊‚它會顯示有關每個應用程式的重要元數據‚包括它的簡要說明和專案首頁。它還列出「相依」套件(dependencies)‚這些「相依」套件(dependencies)是系統上其他通訊埠‚這樣套裝軟體才能正常運行。「相依」套件(dependencies)由MacPorts自動解決‚這意味著‚例如:如果你安裝parallel 套裝軟體‚則MacPorts在尚未安裝的系統上安裝per15。最後‚MacPorts提供了許可證和通訊埠維護者。

安裝套裝軟體


當你準備套裝軟體時‚請使用install次命令:
$ sudo port install parallel

根據你的CPU 中代碼庫大小和安裝的套裝軟體數量‚可能需花費一些時間來編譯代碼。因此請耐心等待‚這是值得的。

一旦安裝完成後‚新的應用程式將立即可以使用:
$ parallel echo ::: "hello" "world"
hello
world


MacPorts安裝的應用程式放入/opt/local。

查看已安裝的內容


在系統上安裝套裝軟體之後‚你可以使用contents次命令‚確切地查看它在驅動器放置的位置:
$ sudo port contents parallel
/opt/local/bin/parallel
[...]


清理


使用MacPorts安裝套裝軟體通常將建構檔案留在通訊埠樹中。這些檔案對於除錯失敗的安裝很有用‚但通常不需要將它們擺在身邊。可使用port clean命令從系統中清除這些檔案:
$ port clean parallel

卸載套裝軟體


使用port uninstall 命令去卸載套裝軟體:
$ port uninstall parallel

開源套裝軟體管理


MacPorts專案是被當作在masOS的早期建構開源工作活動基礎時‚所遺留下來的產物。儘管這項努力失敗‚但作為一個名叫PureDarwin的專案 ‚人們一直努力要恢復之前榮景。推動開放更多蘋果代碼(Apple’s code)是重要的工作‚這種努力副產物(MacPorts)是對每個運行masOS的人都是有益的。如果你正在尋找在Mac上可取得開源應用程式的簡易方法‚安裝和使用MacPorts是保持最新狀態的可靠方式。