# How to avoid configuration windows



## eyeprotocol (Oct 26, 2010)

Hello all. I am new to FreeBSD and just finished installing some ports on a test machine. 

I noticed that it frequently happens that a port will present several configuration options in a ncurses window. Is there a way to avoid such windows, while passing the desired configuration options via command line? Furthermore, what happens with such configuration windows that appear when dependencies are being installed (e.g. I installed Apache, but Apache required Python, and Python presented its own ncurses window with configuration options).

Please assist.

Panos


----------



## SirDice (Oct 26, 2010)

Make use of *make config* and/or *make config-recursive*.

If you don't want any configuration options popping up set the variable BATCH.

Any of the WITH_* or WITHOUT_* options can be set on the commandline:
`# cd /usr/ports/editors/vim && make -DWITHOUT_X11 install clean`


----------



## eyeprotocol (Oct 26, 2010)

SirDice said:
			
		

> If you don't want any configuration options popping up set the variable BATCH.



Thank you.
Could you point me to some documentation on the proper use of this variable in the context at hand?

Panos


----------



## SirDice (Oct 26, 2010)

eyeprotocol said:
			
		

> Could you point me to some documentation on the proper use of this variable in the context at hand?


Read ports(7)


----------



## ahavatar (Oct 26, 2010)

```
# portupgrade --batch <port name>
```
I use "--batch" option.


----------



## SirDice (Oct 26, 2010)

Note that portupgrade is part of the ports-mgmt/portupgrade suite of tools.


----------



## wblock@ (Oct 26, 2010)

ahavatar said:
			
		

> ```
> # portupgrade --batch <port name>
> ```
> I use "--batch" option.



"-c" lets you set options before any building begins.


----------



## SirDice (Oct 26, 2010)

Similarly, ports-mgmt/portmaster also tries to set all the options before starting the actual building. It seems to pick up on options that add/remove dependencies (and thus configuration options) a bit better than portupgrade.


----------



## eyeprotocol (Oct 27, 2010)

Thank you all for helping. I tested a bit and - indeed - setting the BATCH variable eliminates such windows. It still remains a mystery to me, how the configuration options for dependencies are handled with the BATCH variable enabled. For example, installing Postfix requires Perl, yet Perl has its own number of important configuration options, which would be somewhat different if perl was installed as a dependency for something other than Postfix. Furthermore, what will happen if - after installing Postfix - one tries to install another port that also requires Perl, yet with another set of configuration options?

Am i worrying too much?

Panos


----------



## kpa (Oct 27, 2010)

If you set BATCH, the ports are built with options already stored in /var/db/ports/* or with default options if no stored settings are found.


----------



## wblock@ (Oct 27, 2010)

eyeprotocol said:
			
		

> Thank you all for helping. I tested a bit and - indeed - setting the BATCH variable eliminates such windows. It still remains a mystery to me, how the configuration options for dependencies are handled with the BATCH variable enabled.



You get the defaults, or "might as well install a package" settings.  That's why config-recursive or portupgrade -c/-C or portmaster are better.



> For example, installing Postfix requires Perl, yet Perl has its own number of important configuration options, which would be somewhat different if perl was installed as a dependency for something other than Postfix.  Furthermore, what will happen if - after installing Postfix - one tries to install another port that also requires Perl, yet with another set of configuration options?



Higher-level ports don't change lower-level ports' configurations, although they might require additional features.  In the unlikely situation that you needed to add configuration options to an already-installed Perl, you just set those additional options and deinstall/reinstall it.  Offhand, I can't recall ever needing to do that.


----------

