Ports
Ports collections (又稱 ports trees 或直接簡稱 ports)是一系列由BSD系列操作系統(比如 FreeBSD,NetBSD,和 OpenBSD)提供的一些 makefile 和 patch (Unix),以作為一種簡單的安裝以及創建二進制包的方法。它們通常基於軟件包管理系統,並帶有 ports handling package 創建以及附加工具以對軟件包刪除、增添或進行其他操作。除了BSD,一些Linux發行版有類似的軟件。包括 Gentoo的 Portage,Archlinux 的 Arch編譯系統(ABS) ,CRUX 的以及 Void Linux 的 Ports。
Ports 的主要優點是使用現有的硬件資源對軟件安裝的微調與優化。
另一方面,它的主要缺點是需要額外花時間在包的編譯上。舉個例子,安裝一份全部通過 ports 編譯的 FreeBSD 需要幾天,當然,這取決與你的硬件。編譯GNOME等大型軟件也需要花費大量時間。
NetBSD 的 pkgsrc
NetBSD 的 pkgsrc 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 上可用。
參考
- ^ Dillon, Matthew. PKGSRC will be officially supported as of the next release. [2008-01-23]. (原始內容存檔於2008-01-20).
- ^ Sherrill, Justin. 3.4. http://leaf.dragonflybsd.org/mailarchive/kernel/2013-03/msg00013.html. 外部連結存在於
|website=
(幫助) - ^ Dports git. https://github.com/DragonFlyBSD/DPorts. 外部連結存在於
|website=
(幫助) - ^ Yodlowsky, William. 4.6-stable ports. [2009-12-29]. (原始內容存檔於2011-06-12).
- ^ http://ports.openbsd.nu - frontend to ports. OpenBSD Journal. 2006-08-09 [2015-06-30]. (原始內容存檔於2018-05-27). 外部連結存在於
|title=
(幫助) - ^ Marc Espie. Re: Why is there no pkg_find(1)?. [email protected]. 2013-06-07 [2015-06-30]. (原始內容存檔於2022-04-10).