# Q: Forcing the use of binary packages for certain packages



## swo123 (May 26, 2018)

Hi,

I am generally installing all my required software from the ports collection which works great for me. Now I was wondering whether for some packages (e.g. for llvm) there is a way to force the use of binary packages to prevent the system from building/compiling the software package from scratch? I know there are pros and cons with using packages & ports but for me the compilation of things like llvm just take forever (i.e. hours) on my server and I would like to avoid having to wait for hours for the compilation to complete. Any hints/ideas would be appreciated as I could not find any information about this online.

Thanks.

Best regards
Sebastian


----------



## talsamon (May 27, 2018)

An update-script which contains something like that:
`/usr/local/sbin/portmaster -x rust -x gcc\* -x firefox -x llvm\* -x libreoffice - -a -d`
The "x" switch excludes  the ports.


----------



## SirDice (May 28, 2018)

I strongly suggest using packages for _everything_. There's really nothing to gain by building from ports if you accept the default options.

If you do insist on building from ports look into ports-mgmt/synth and ports-mgmt/poudriere and set up your own repositories.


----------



## sidetone (Jun 12, 2018)

In poudriere, is it possible to build all ports with the exception of using a FreeBSD online repository package for dependency devel/llvm60?


----------



## SirDice (Jun 12, 2018)

Not that I'm aware of.

I can recommend setting this in poudriere.conf:

```
ALLOW_MAKE_JOBS_PACKAGES="pkg llvm* gcc* node*"
```
Or else they'll be built using a single job, which takes a long time. This speeds things up considerably on my systems.


----------

