pkgng and pkgdb

Matthew Seaman matthew at
Tue Feb 25 21:12:40 UTC 2014

On 25/02/2014 20:52, Sergio de Almeida Lenzi wrote:
> Em Ter, 2014-02-25 às 16:28 +0000, Matthew Seaman escreveu:
>> On 02/25/14 15:56, gahn wrote:
>> > the question is: what is the equivalent of "pkgdb -Ff"? for pkg?
>> Not needed at all with pkg(8).  Because we're using a reasonable RDBMS
>> system (sqlite) we don't suffer from the same sort of corruption that
>> the old package tools used to.

> For me,  that build my own packages... I use a pkg-shell kind of command:
> pkg shell <<%
> update deps set version=(select packages.version from packages where
> deps.origin=packages.origin);
> %
> this set the version of the packages with the version of de deps to make
> sure that they match
> after that, I rebuild (pkg create ....) the packages that have changed
> version and the ones that depends opon.
> for example if I build glib20 for example, I build all the packages (pkg
> create...) that depends on glib20.
> than I make a new repo and than when I install them (over http),
> everything works ok.

First of all: while you are welcome to futz around in the database on
your own systems, be aware that this is entirely at your own risk, and
you will receive little sympathy and less help should you cock things
up.  Also, we reserve the right to arbitrarily change the DB schema
whenever we feel like it.  So please don't encourage anyone to do such
things on any system that matters.

Instead, the approved mechanisms are the C-language interface provided
by and the CLI tools provided as sub-commands of pkg(8).
Those we have agreed to maintain under certain stability constraints so
you should be assured that scripts etc. you write around them will keep
on working -- or, at least, you will receive a prior warning of features
being deprecated sufficiently far ahead that you can reasonably be able
to fix things before the hammer comes down.

In this case, it seems to me that what you are looking for is the 'pkg
set' command:

    pkg set -o old/dependency:new/dependency

which I admit is limited to one dependency port at a time.  We hope to
make the need for this pretty much obsolete with the new solver
currently being worked on, but 'pkg set -o' will certainly remain
available for long after the introduction of the new solver.



Dr Matthew J Seaman MA, D.Phil.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1036 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the freebsd-questions mailing list