# Installation without prompt



## ObiektywNy (May 23, 2010)

Hi all
I just started with FreeBSD, so far I did many deinstallations and installations from scratch I'm wonder ( because every port installation take a long time, sometimes few days) if there some way to do for eg. 
	
	



```
portupgrade
```
 without that prompts every port settings. I mean some ports prompts for "choose options" (those blue screens ) and it is annoying to keep eye on that and installation process take longer because I am not all the time in front of the computer.

If there is some option to force and install everything with default settings I will be very happy. 

Thank you for your help.


----------



## crsd (May 23, 2010)

Use -DBATCH. Not sure how you would pass it with portupgrade, check its manpage.


----------



## zeiz (May 24, 2010)

If no need in configs why spend days instead of just installing packages with *pkg_add*?
`# pkg_add -r <package1 name> <package2 name> ...<packageN name>`
I believe that currently all the main packages are up-to-date with ports.
If something is not quite up-to-date then *portupgrade* makes sense:
`# portupgrade -RP <package name>`
This will install packages first and build from ports only if a package is out-of-date.
Also option "-N" allows new install with *portupgrade* which also can make config-recursive (all those blue screens appear all at once and then you are free).
Manpages are pure treasure:
`$ man portupgrade`


----------



## phoenix (May 24, 2010)

Portmaster pops up all the OPTIONS screen in the dependency checking phase.  Once it starts the build, you won't see anymore OPTIONS screens popup.

Not sure if portupgrade has that feature (haven't used it in many years.)


----------



## zeiz (May 24, 2010)

> man portupgrade
> .................
> -c
> --config               Run ``make config-conditional'' before everything for all tasks.
> ...


Portmaster does it by default but I don't know how to suppress all the deleting (old files or backups) confirmations that portmaster asks after each task.


----------



## DutchDaemon (May 24, 2010)

Use the correct flags in portmaster(8), or use a /usr/local/etc/portmaster.rc file (printed literally in the FILES section of portmaster(8) on a recent system) to make them permanent. Reading manuals will always be preferred to asking it here.


----------



## ObiektywNy (May 24, 2010)

Thank you all for advice,



> Reading manuals will always be preferred to asking it here.


As I mentioned I just started with FreeBSD and your help is very appreciated. And in some cases I have no idea wich manual I should read... 

Thank you all.


----------



## DutchDaemon (May 24, 2010)

Well, putting 'man' in front of the command is usually how it works


----------



## ObiektywNy (May 24, 2010)

Maybe I will ask a trivial question, what is better to use for update the ports portupgrade or portmaster, I do not want mess with the system before I will know it better, I assume that for you guys it doesn't matter but what is easier and more save to use for beginners.


----------



## zeiz (May 24, 2010)

Long "portupgrade vs portmaster" discussion sounds to me like apple-orange one.
Doug Barton himself said that he didn't write portmaster to replace portupgrade...suum cuique.
I use both but mostly portupgrade... maybe just because I found it more comprehensive at my own start.
Personally I would install everything with *pkg_add -r* instead of spending days for compiling and then just update a few outdated packages with:
`# portupgrade -aRC`
even without "C"
OR
`# portmaster -ad --no-confirm`
even without --no-confirm

@DutchDaemon: 
1. You provided a link (thanks) to a bit outdated manpage, in latest one *-u* is deprecated and *-D* and *-d* are highlighted instead:


> -D  no cleaning of distfiles
> -d  always clean distfiles


On same manpage below are samples including the following:


> Update all ports that need updating, and delete stale distfiles after the update is done:
> portmaster -aD
> portmaster --clean-distfiles


So...what you gonna do?

2. "Here" looks exactly as a place to mostly ask and answer and sometimes "moderate in background"


----------



## ObiektywNy (May 24, 2010)

> So...what you gonna do?


I will probably stay with *portmaster* for now, step by step, I screwed to many times my installation, and every time I am learning something new...

I printed manuals to have a nice reading.

And one more question:

If I do install some port first time and it is fetch from ftp://... it means that it downloading the last version or I should check what version was installed and checked if I need update it?


----------



## zeiz (May 24, 2010)

If you build (compile) from source (ports) it fetches distfile (source file) according to version in your Makefile. To have latest version of source files we regularly update our port tree, sync it with what FreeBSD currently has.
I prefer *portsnap* for this. Some others prefer *csup*. 

If you use packages it depends on package version that is currently on freebsd server. The packages (binaries) are built from source as well but it's not done on daily basis. Building of packages for FreeBSD server is also depends on stability of current sources (new bugs etc). So devs usually will not build a package untill it's source becomes stable enough.
Package version also depends on "branch": RELEASE, STABLE or CURRENT. RELEASE always has same versions of packages that was new and stable at the release time but became outdated later. For example for 8.0-RELEASE version of Gnome is still 2.26 but current Gnome version is already 2.30.
That's why many people prefer to follow STABLE branch: it always has updated FreeBSD sources and newest versions for packages.
However it's possible to get last version of packages staying with RELEASE by fetching packages from STABLE branch. This could be done with setting environment for *pkg_add* i.e to tell it where to look for packages. For example:
`# setenv PACKAGESITE [url]ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8-stable/Latest/[/url]`
Good luck!


----------



## ObiektywNy (May 25, 2010)

I did  thanks 
and so far I am using [cmd=]portmaster --force-config -ad[/cmd] command to update ports, I I met some problem during that process like "port already installed" I am using 
	
	



```
[# /usr/ports/portsgoup/portname/] make deinstall
```
 command or `pkg_delete -f portname` to remove it and install again. I hope I am going in right direction with that.


----------



## zeiz (May 25, 2010)

Well done!
However you may want to try dropping option *--force-config* which I believe is used to bring Options dialogs for ALL ports installed not only for all those you are updating.
*portmaster* makes config-recursive by default and if you specified *-a* all the ports in work will be configured. By using --force-config you are probably just confirm already done 
configs also for those ports that won't be updated at the moment due to they are up-to-date.

By the way I am on 8-STABLE and just updated src and rebuilt world and kernel and I got 8.1-PRERELEASE


----------

