pkgng questions

Mark Felder feld at
Thu Aug 30 12:02:00 UTC 2012

I think you're very confused about what pkgng is for. At this time, ports  
are STILL the recommended way to install things and keep them up to date.  
Pkgng is the first step required for us to get a better package management  
system so we can shift the community towards primarily using packages.

On Thu, 30 Aug 2012 05:05:57 -0500, Matt Burke <mattblists at>  

> 1. How do I get pkg to use packages built against 9.1-RC1? VirtualBox is
> playing up (no ethernet, unkillable crashes, etc) and I suspect it's the
> kernel module...

I'm not sure what you mean here. Do you have a 9.1-RC1 server and you're  
using a public pkgng repository? Which is probably built against 9.0?

> 2. Is there a list of ports like nvidia-driver, nspluginwrapper,
> linux-f10-flashplugin, sampleicc (dependency of libreoffice!) which  
> aren't
> in pkgng?

Everything can be built into the pkgng format except a few ports that need  
workarounds. There's a list on the wiki.

Go to the bottom "Known Failures" section.

> 2a. How do I install libreoffice when a dependency isn't in pkgng?

You run your own poudriere box and setup your own private pkgng repository  
at this time and build your packages against whatever versions of  
Perl/Python/PHP/MySQL/etc that you prefer with whichever extra make.conf  
settings and port options you prefer. My own pkgng repository has  
libreoffice with no issues.

> 3. How do I force pkg to install/upgrade a single package, regardless of
> dependencies being out of date?

You should never try to do this anyway; you'll end up with packages built  
against the wrong versions of libraries.

> 4. How do I get poudiere to build against a local src/obj tree, or a zfs
> snapshot of a pre-built jail, instead of 9.0-RELEASE?

The poudriere man page has all the instructions needed to create jails of  
any release version to be used for building packages.

> 5. How do I get poudiere to build against the packages a pkgng client  
> will
> use instead of building everything for itself? It might help to reduce  
> the
> discrepancy between the 30 secs it takes to rebuild sysutils/conky from
> ports on my desktop, and the >1hour it takes poudiere on a hefty server  
> to
> download+build X and all its dependencies

You don't do it this way. You build everything on your poudriere server  
and push all of your packages to the client. You do this every single  
time. If you decide you want a new package on your client, you build it on  
your poudriere server and have your client request it. If you're using  
poudriere/pkgng, your clients should NEVER be compiling ports or  
installing packages outside of what your poudriere server is providing.  
Poudriere is giving you a "cleanroom" environment where it can guarantee  
that all the packages and their required packages/libraries are sane.

> 6. Is pkgng really replacing base when poudiere requires ZFS? How will
> ports work if pkg_* are gone? Seriously, shouldn't ports at least be able
> to work with pkgng, and the default FreeBSD install be to a ZFS root  
> before
> people are stuffed with the "wrong" choices (UFS) they made?

Pkgng doesn't require ZFS -- poudriere does. Your clients should never  
have poudriere.

> 7. How do I configure pkg to use packages from a certain historical
> release? I need my servers to be identical software-wise regardless of  
> when
> I install them. In other words, I DON'T want the latest versions.

Make sure your poudriere server is using the ports tree snapshot you  

> 8. Is there a pkgng equivalent of 'ls -lt /var/db/pkg' without firing up
> sqlite?

Are you looking for the date column (not sure why that's useful as it can  
change due to many things)? Doesn't "pkg info -a" suffice?

> 9. Why didn't pkg upgrade tell me it replaced my custom-built packages?  
> I'd
> have liked for it to not break stuff when /var/db/ports/*/options  
> differed
> from the options I can see pkgng keeps in its metadata...

Your poudriere server can use you preferred options when it builds  
packages. Check the man page.

Long story short: poudriere is a tool for you to build your OWN private  
package repositories (which is really handy!). Pkgng is just the first  
step towards a large goal of greatly improving the enduser experience with  
FreeBSD. I don't believe pkgng is default on any release yet, so you  
shouldn't be using public pkgng repositories for anything but testing. You  
should either be running your own poudriere server or you should just be  
using the new pkgng format with ports.

I'm sure someone will chime in with more details and possibly corrections  
if I've missed something.

More information about the freebsd-ports mailing list