Status of portupgrade and portmaster?

Vlad K. vlad at acheronmedia.hr
Sun Oct 1 10:49:12 UTC 2017


On 2017-10-01 12:34, Carmel NY wrote:
> 
> 1. Does it determine out-of-date update packages automatically or does
> the user have to determine that what is out-of-date and feed them to 
> poudriere
> manually and in the proper order?
> 
> 2. From what I have read, the user is required to install each package
> manually. Is that correct?

It's not. Poudriere builds a pkg repo, and automatically rebuilds all 
ports that have changed version (including epoch and portrevision, so 
essentially -- changed version string), including all ports that depend 
on ports that changed (see my previous post about frequent rebuilds), or 
became a new dependency.

So you can have it build updates in the background and when you're done, 
just issue pkg upgrade.

Another benefit of this approach is that you don't get partial updates 
for a program that's in active use. I've seen this cause failure a lot 
of times, eg with perl. The master program is running or being actively 
run (from cron or initiated by user), not yet updated but a dep just 
updated. Crash.



> I have a small system. Three PCs plus a number of laptops. Only one 
> machine
> runs FreeBSD. I don’t have the time to be a slave to this system. It 
> appears
> that there is a considerable amount of manual configuration to get 
> poudriere
> up and running, which means there is a significant possibility of 
> making
> mistakes.

Depends on the definition of "significant". With poudriere you really 
have four steps at minimum to get started:

1. create the builder jail (poudriere jail -c ...)
2. create the ports tree (poudriere ports -c ...) -- create new, or 
point it to use system's /usr/ports
3. create a file that lists ports you want build for that repo
3a. optional step, issue poudriere options ..., to set non-default 
options .
4. configure /etc/pkg.conf to use the repo poudriere is building


After that, the workflow is simple:

1. update ports tree (poudriere ports -u)
2. manage new/changed options (poudriere options ...)
3. run build (poudriere bulk ...)
4. when it's done, pkg upgrade

It's covered in the handbook:

https://www.freebsd.org/doc/handbook/ports-poudriere.html


The above is just a minimum, but poudriere allows you to have many 
builder jails (eg for 64 or 32 bit, for different ABIs, ...), and many 
package option sets, so essentially it can create many repositories that 
differ in supported arch, abi, options used, packages listed, ...


-- 
Vlad K.
Acheron Media, Croatia
www.acheronmedia.hr
+385 95 536 3850


More information about the freebsd-ports mailing list