OpenBSD ports
是OpenBSD的源代码软件包
的包管理器。
OpenBSD ports
是以FreeBSD ports为基础,做了一些小的调整。
ports tree
就是一种ports
仓库的组织方式。
ports tree
通常以/usr/ports
目录作为根。
ports tree
在安装系统的时候生成好,也可以在安装完系统后,通过portsnap
命令从远程ports tree
仓库安装到本地机器。
我们进入Vim的port
看一下:
ports tree
仅仅是源码软件包
的元信息和索引,并不包含真正的源码
, 当需要源码的时候,比如要进行构建的时候,发现本地还没有下载过源码,就会去源码仓库下载源码。
ports
是如何管理软件的呢?答案是使用gmake。我们知道构建系统有很多,gmake是比较老的一种构建系统,现代构建系统有很多,但是由于历史的原因,FreeBSD
相对来说比较保守,他们基本上是持有能用就行的态度,所以,就一直用到今天。
每个port
的根目录下都有一个Makefile
文件,它是gmake的配置文件。 这个Makefile
文件是有一定的规则的,可不是随意编写的。比如他们都提供下面这些target
:
/etc/mk.conf
是全局Makefile
。 通常在此文件中设置预定义Makefile变量。