Ports

Ports collections (又称 ports trees 或直接简称 ports)是一系列由BSD系列作业系统(比如 FreeBSDNetBSD,和 OpenBSD)提供的一些 makefilepatch (Unix),以作为一种简单的安装以及建立二进位包的方法。它们通常基于软体套件管理系统,并带有 ports handling package 建立以及附加工具以对软体套件删除、增添或进行其他操作。除了BSD,一些Linux发行版有类似的软体。包括 GentooPortageArchlinuxArch编译系统(ABS) ,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 可以十分简洁。为安全起见,或为开发新的 ports 的辅助,ports 编译可能在 systrace 下执行,并提供了一个预设的策略。

在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). 

参见

外部连结

#