How do I build my own package server?

CyberLeo Kitsana cyberleo at
Tue Jun 24 15:41:38 UTC 2014

On 06/24/2014 08:55 AM, Bertram Scharpf wrote:
> Hi,
> this is sort of what I did until now:
>   Inside a jail:
>   - SVN-Update "/usr/ports".
>   - Merge my own patch files for several packages.
>   - Find the outdated ports using a self-written tool.
>   - Do "make clean" and "make package" for them.
>   - Build a package list.
>   On all other machines and jails:
>   - Load the package list.
>   - Find the outdated packages.
>   - Do "pkg_delete" and "pkg_add" for them.
> Now, the pkg_* tools are no longer supported! Rewriting my update tools
> would take at least two days and I have better things to do. On the
> other side, I doubt whether it would go any faster learning some
> portmaster or portupgrade tool until I find the features I need.
> (Actually, I tried portmaster and soon was tired of seeing it
> redundantly cleaning and recompiling ports.)
> Therefore my question: Is there any documentation how to build a package
> server that can be understood in finite time?

I have used poudirere[1] to great effect for this purpose. It produces a
ready-to-use repository that I just rsync over to an HTTP server for use
amongst my many jails.

Once properly configured, my update cycle now consists of running, on
the build server:

poudriere bulk -j cdnjail -p cdn -f

...then rsync'ing the results to a webserver, followed by, on each jail:

pkg upgrade

...and that's it. This has replaced hundreds of lines of bourne shell
script that I used to use to maintain jails, and it is awesome*.

* for me, your mileage may vary.


> On the other side: I do not feel very well having loads of SQLite
> databases in the base system.

Can you articulate this feeling further?

Fuzzy love,
Technical Administrator
CyberLeo.Net Webhosting
<CyberLeo at CyberLeo.Net>

Furry Peace! -

More information about the freebsd-questions mailing list