corrupt rpmdb in mock-chroot

Paul B Schroeder paul.schroeder at bluecoat.com
Mon Jun 2 17:47:09 UTC 2008


On Mon, 2008-06-02 at 09:11 -0500, Dennis Gilmore wrote:
> On Monday 02 June 2008, Paul B Schroeder wrote:
> > On Mon, 2008-06-02 at 08:25 -0500, Dennis Gilmore wrote:
> > > On Monday 02 June 2008, Paul B Schroeder wrote:
> > > > On Sat, 2008-05-31 at 22:16 -0400, Jon Stanley wrote:
> > > > > On Sat, May 31, 2008 at 7:04 PM, Paul B Schroeder
> > > > >
> > > > > <paul.schroeder at bluecoat.com> wrote:
> > > > > > Rebuilding the rpm database seems to fix this, but it's a pain to
> > > > > > be sure.  Any ideas as to why I'm seeing this corruption when
> > > > > > creating an i386 mock chroot from a x86_64 system?
> > > > >
> > > > > This is normal and expected.  You created the rpmdb with x86_64 rpm,
> > > > > and are accessing it with i386 rpm.  The Berkeley DB format is
> > > > > different based on the arch of the creating machine, therefore
> > > > > generates the database differently on the two platforms.  If I plan
> > > > > on doing anything in a chroot (especially a non-native arch one)
> > > > > other than building a SRPM, the first thing that happens is to rm -f
> > > > > /var/lib/rpm/__db*.  Don't worry, this got me the first time too (and
> > > > > is fatal to a pungi compose) :)
> > > >
> > > > Ah..  I see..  I would think there would be some way to tell it to
> > > > create the DB in i386 format though?  Is there an environment variable
> > > > or something that can be set?
> > >
> > > No,  the hosts rpm is used to populate the chroot.  when you enter the
> > > chroot you can delete /var/lib/rpm/__db*  and things will work.
> > >
> > > You get the same issues with building say F-7 chroots on a F-9 host where
> > > the chroot has a different version of the the database than the host.
> >
> > I understand how it's working.  (Although, I didn't know Berkely DB had
> > diff formats for diff archs beforehand)  But I was hoping there might be
> > a way (in my Makefiles) to tell my x86_64 host's rpm to always operate
> > in i386 mode.
> >
> > I can live with it, but I am setting up a build environment for other
> > (read less Linux literate) folks to use.  I'd like to head off any
> > forthcoming confusion if possible.
> >
> > Cheers...Paul...
> 
> Please dont CC me on list email  just "reply to list"
> 
Oops..  Apologies..

> you could try run setarch i386 before the mock command.
> 
Yea..  I tried that one already..  Didn't work.





More information about the Fedora-buildsys-list mailing list