Ports collections (又稱 ports trees 或直接簡稱 ports)是一系列由BSD系列作業系統(比如 FreeBSDNetBSD,和 OpenBSD)提供的一些 makefilepatch (Unix),以作為一種簡單的安裝以及建立二進制包的方法。它們通常基於軟體套件管理系統,並帶有 ports handling package英語handling package 建立以及附加工具以對軟體套件刪除、增添或進行其他操作。除了BSD,一些Linux發行版有類似的軟體。包括 GentooPortageArchlinuxArch編譯系統(ABS) ,CRUX英語CRUX 的以及 Void Linux 的 Ports。

Ports 的主要優點是使用現有的硬體資源對軟體安裝的微調與最佳化。

另一方面,它的主要缺點是需要額外花時間在包的編譯上。舉個例子,安裝一份全部通過 ports 編譯的 FreeBSD 需要幾天,當然,這取決與你的硬體。編譯GNOME等大型軟體也需要花費大量時間。

NetBSD 的 pkgsrc

NetBSDpkgsrc ports collection 與眾不同,它致力於保證和可攜式性,以及對除 NetBSD 外的 BSD 系統的通用性,包括其他BSD,Linux和其他類Unix系統。在 1997年8月,pkgsrc 被基於已經存在的 FreeBSD ports 系統被建立。它遵循每季度發布,而在2006年7月包含了超過6000個包。 在DragonFly BSD 的1.4版本,他們宣稱會採納 pkgsrc 作為他們的官方包管理系統。[1]但後來DragonFly BSD又很快地建立了他們自己的 ports,稱為 dports,在3,4版本發行並在3.6版本完全更換[2]dports 是通過git運轉的。[3]

OpenBSD 的 ports

相反,FreeBSD Ports 是它最初的基礎,OpenBSD 的ports系統的目的是作為來源,以建立最終包:安裝 ports 時首先建立一個包,然後進行安裝。Ports 包含 Makefile ,帶有說明資訊的 文字檔案,讓這個程式在 OpenBSD 執行的修補程式以及一個列出本包中的檔案的包列表。這個 ports 使用一系列標準的 Makefile,其中一些和原始碼樹共享,這些共享的基礎部分常常包括用於給 ports 開發者的公共的功能,以保證 ports 可以十分簡潔。

在2007年10月下旬, OpenBSD 開發者 Nikolay Sturm 宣布穩定版本的 ports 應被看作無人維護的,因為缺乏資源。這強烈地驅使使用者執行current版本的 ports/base tree 以保持安全更新。在2009年,stable 版本的 ports tree 在 Robert Nagy 和 Jasper Lievisse Adriaanse 的管理下復用。[4]

此處有兩個非官方的網頁,上有一 OpenBSD 的 ports 和包列表:

  • OpenPorts.se頁面存檔備份,存於網際網路檔案館)(原網站是 ports.openbsd.nu, 於 2006年[5])是是一個自訂編寫的網站,進行 ports tree 的結構和更新的解析,並具有跟蹤變化特定 port 的功能。有一個缺點,就是不支援一些更豐富的 Makefile 邏輯,因此失去了15%的包,因為這些包需要更複雜的 ports tree 結構和官方工具。[6]
  • ports.su,在2013年2月發布,基於 sqlports 資料庫;[7] 因此,它具有所有可用於AMD64平台的包和習慣。 因為基於官方工具, "虛擬的" (無主)類都是可用的,並包含關於庫的訊息,編譯 run-time 依賴。 該網站的原始碼基於 ports-readmes port,並已經在 GitHub 上可用。

參考

  1. ^ Dillon, Matthew. PKGSRC will be officially supported as of the next release. [2008-01-23]. (原始內容存檔於2008-01-20). 
  2. ^ Sherrill, Justin. 3.4. http://leaf.dragonflybsd.org/mailarchive/kernel/2013-03/msg00013.html.  外部連結存在於|website= (幫助)
  3. ^ Dports git. https://github.com/DragonFlyBSD/DPorts.  外部連結存在於|website= (幫助)
  4. ^ Yodlowsky, William. 4.6-stable ports. [2009-12-29]. (原始內容存檔於2011-06-12). 
  5. ^ http://ports.openbsd.nu - frontend to ports. OpenBSD Journal. 2006-08-09 [2015-06-30]. (原始內容存檔於2018-05-27).  外部連結存在於|title= (幫助)
  6. ^ Marc Espie. Re: Why is there no pkg_find(1)?. [email protected]. 2013-06-07 [2015-06-30]. (原始內容存檔於2022-04-10). 

參見

外部連結