HEADS-UP: portupgrade and pkgdb.db failures

Sergey Matveychuk sem at FreeBSD.org
Sat Jul 1 09:28:20 UTC 2006


Matthias Andree wrote:
> Sergey Matveychuk <sem at freebsd.org> writes:
> 
>> Please note:
>> If you got problem with pkgdb.db (and INDEX.db) file afrer upgrade
>> portupgrade, remove it (them) and restart portupgrade.
>> (It was described in man page.)
> 
> For those wondering, these are /var/db/pkg/pkgdb.db and
> /usr/ports/INDEX.db, INDEX-5.db or INDEX-6.db.

Yes, I meant INDEX*.db

> 
>> It's possible you'll get *.db brackage. It'll happen if you selected
>> WITH_BDB4 option and thought you have *.db in bdb2+ format. But it was
>> wrong, you had bases in dbd format. Now it's fixed and you'll have
> 
> Is that bdb 1.85 format you're referring to?

No. Only if you have defined WITH_BDB4.

> 
>> honest bdb format, but you should remove databases files first.
> 
> Would it be possible, reasonable and not too much effort to use the
> db_dump185* and db_load* utilities of the corresponding database library
> to automatically convert the database to the newer format in
> postinstall?  (Can the proper Berkeley DB library version be queried
> from the ruby database code at all?)
> 

I don't know bdb files format. I think sleepycat provide some
convertors, but it's not a point.

Real problem is old versions of portupgrade fall back to dbd driver (not
Berkley DB) if no bdb1 driver was found. So bdb2+ never used even if you
have it installed.
So if you get *.db file error it means you have dbd files instead of bdb2+.

-- 
Dixi.
Sem.


More information about the freebsd-ports mailing list