如何通过选择 "make config" 中的所有选项来自动安装端口?

How to automate ports installation by selecting all options in "make config"?

我想在我的 FreeBSD 环境中自动安装端口。通常我采用默认设置,但对于某些端口,我想 - 自动 - select 所有选项。

是否可以做类似的事情

/usr/ports/.../> make config
/usr/ports/.../> ** select all options **
/usr/ports/.../> make clean install BATCH=yes

在脚本中?

没有自动方法可以做到这一点。配置系统的重点是让操作员选择要选择的选项。

并且由于 ports 系统现在也支持多选选项,您不能总是 select 所有 选项。来自 /usr/ports/Mk/bsd.options.mk:

# OPTIONS_SINGLE    - List of single-choice grouped options: 1 and
#                     only 1 among N
# OPTIONS_RADIO     - List of radio-choice grouped options: 0 or 1
#                     among N
# OPTIONS_MULTI     - List of multiple-choice grouped options: at
#                     least 1 among N
# OPTIONS_GROUP     - List of group-choice grouped options: 0 or
#                     more among N

但是,一旦端口更新更改选项的名称或数量,设置的选项将一直有效。所以一般来说,你不需要为每个构建重新运行 make config

您可以尝试的一件事是自己生成必要的 /var/db/*/options 文件(在 _OPTIONS_READ 中包含最新的端口修订) 调用 make install clean. 这取决于正确解析端口的 Makefile。在 OPTIONS_SINGLE 中你会选择哪个选项?

注意:可以在调用make建端口时定义BATCH。这应该跳过那些需要交互的端口。但是如果我读 /usr/ports/Mk/bsd.port.mk 正确,它将使用默认设置构建端口。