portupgrade-2.2.2_1,2 corrupts portsdb

Murilo Opsfelder Araújo mopsfelder at gmail.com
Thu Feb 1 13:01:07 UTC 2007


On 2/1/07, Philip Kizer <pckizer at nostrum.com> wrote:
> On 2007, Jan 31, at 18:45, Csaba Molnar wrote:
> > I deleted /var/db/pkg/pkgdb.db, then rebuilt it with pkgdb -u I
> > think, and
> > that seems to have worked.
> >
> > While I was updating ports before this error showed up, the options
> > screen for
> > portupgrade showed up - and option WITH_BDB4 was unchecked. I
> > changed that
> > (so portupgrade was now built with bdb4) - and the problems began
> > right after
> > this update.
>
> I think you are on the right track, I had a working stable
> portupgrade/portsdb environment and after the last update I started
> getting that as well...my options for portupgrade to use BDB4 were
> unchanged from before through after the upgrade: WITH_BDB4 was true
> for both cases.
>
> If I recompile portupgrade with:
>
> WITHOUT_BDB4=true
> WITH_BDB1=true
>
> which also requires me to pkg_delete ruby-bdb, then it all seems to
> work just fine with no more warnings or errors.
>
> After a bit more trial and error, I find I can replicate the problem
> by performing the following:
>
> # portinstall databases/ruby-bdb
> # portversion -l'<' -v
> [missing key: categories] [Updating the portsdb <format:bdb_btree>
> in /usr/ports ... - 16414 port entries found .........
> 1000.........2000.........3000.........4000.........5000.........6000...
> ......
> 7000.........8000.........9000.........10000.........11000.........12000
> .........13000.........14000.........15000.........16000.... ..... done]
> missing key: categories: Cannot read the portsdb!
> [...snip...]
> # portversion -l'<' -v
> [missing key: categories] [Updating the portsdb <format:bdb_btree>
> in /usr/ports ... - 16414 port entries found .........
> 1000.........2000.........3000.........4000.........5000.........6000...
> ......
> 7000.........8000.........9000.........10000.........11000.........12000
> .........13000.........14000.........15000.........16000.... ..... done]
> missing key: categories: Cannot read the portsdb!
>
>
> and then I can remove any visible problems by performing:
>
> # pkg_delete ruby18-bdb-0.5.9_2
> # portversion -l'<' -v
> [Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... Failed
> `Inappropriate file type or format'; rebuild needed] [Rebuilding the
> pkgdb <format:bdb1_btree> in /var/db/pkg ... - 428 packages found (-0
> +428) ..................................................................
> ........................................................................
> ........................................................................
> ........................................................................
> ........................................................................
> ........................................................................
> .. done]
> [Failed `Inappropriate file type or format'] [Updating the portsdb
> <format:bdb1_btree> in /usr/ports ... - 16414 port entries
> found .........
> 1000.........2000.........3000.........4000.........5000.........6000...
> ......
> 7000.........8000.........9000.........10000.........11000.........12000
> .........13000.........14000.........15000.........16000.... ..... done]
> [...snip...]
> # portversion -l'<' -v
> [...snip...]
>
>
>
> -philip
>

Hi all,

Yesterday I had the same problem and garga@ helped me to solve that.
He told me to change my ports database to dbm_hash.

Just add these two lines in /usr/local/etc/pkgtools.conf around line number 160:

ENV['PKG_DBDRIVER'] ||= 'dbm_hash'
ENV['PORTS_DBDRIVER'] ||= 'dbm_hash'

Remove your pkgdb.db and INDEX.db and rebuild them.

The dbm_hash is a little bit more slow, but don't crash :)

This change is recommended to servers.

I hope this help you.

Best regards.

-- 
<about>
   <name>Murilo Opsfelder Araújo</name>
   <linux_user>#391561</linux_user>
   <e-mail>mopsfelder [saispam] gmail [ponto] com</e-mail>
</about>


More information about the freebsd-ports mailing list