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)?. misc@openbsd.org. 2013-06-07 [2015-06-30]. (原始内容存档于2022-04-10). 

参见

编辑

外链

编辑