在安装FreeBSD端口时如何避免出现提示?


26

当我安装端口时,通常会出现一个菜单屏幕来选择配置选项。如果我要安装具有很多依赖项的非常大的软件包,那将非常不便。是否有一个make标志用于接受所有此类提示的默认答案?

Answers:


20

您可能正在寻找ports(7)中BATCH描述的内容:

# cd /usr/ports/sysutils/screen
# export BATCH=yes
# make rmconfig
# make install clean
(no configuration menu is displayed)

make rmconfig删除OPTIONS该端口的配置,并且您可以使用它删除第一次OPTIONS配置和安装时先前保存的配置screen(1)OPTIONS存储到通过指定的目录PORT_DB_DIR(默认为/var/db/ports)。

如果您使用bash,则BATCH可以在每次登录时自动设置:

# echo 'export BATCH=yes' >> ~/.bash_profile

12
我更喜欢make config-recursive && make install clean,因为它可以为您提供所有的配置对话框,而实际安装可能会在无人看管的情况下进行。
user569825 '09

另外,为了缩短配置所需的工作量,通常最好只考虑默认情况下处于活动状态的选项,然后考虑停用其中的任何选项,这通常是一个合理的想法。
user569825 2012年

7
另外,请运行make config-recursive多次,直到停止获得新选项为止(即至少两次)。每当您更改选项时,它可能会带来另一个具有更多选项的依赖项。
Alex Hirzel

export只能在sh非FreeBSD默认shell上工作
ajeh

21

我认为值得一提的是,您可能并不总是想要这样做。我似乎记得,例如,需要配置emacs以添加xft支持。如果您要绕过单个构建的提示,

make install clean BATCH=yes

也会工作。


以某种方式比将“ BATCH = yes”放在make的前面更好。谢谢。
哈里2012年

值得注意的是,make install clean BATCH=其作用与根据的手册相同ports(7),必须仅对其进行定义。可以将其设置为任何值或什么都不设置
Harold Fischer

15

这不会像您所要求的那样自动接受默认值,但是我喜欢“ make config-recursive”方法,该方法可通过您想要的端口的所有选项以及所有依赖项的选项运行。如果您不想更改任何内容,则不必进行任何更改,但是您可以一次浏览所有选择屏幕,而不必每次构建过程都到达它们。

一旦完成,您的“ make install clean”应该几乎无人值守。


3
正如我在@Yasir的帖子中所说的那样-确保多次运行。如果您更改了引入另一个依赖项的选项,则如果该依赖项具有可配置的选项,则直到下一次运行时,您才可以使用它make config-recursive
Alex Hirzel

个人认为这应该是公认的答案。
revprez
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.