[Server-devel] Troubles running F9 mock chroot under F11
Jan Kratochvil
jan.kratochvil at redhat.com
Wed Sep 16 02:25:18 EDT 2009
On Tue, 15 Sep 2009 12:02:38 +0200, Daniel Drake wrote:
> We do have a F11 box
[...]
> I then tried to create a F9 chroot using mock, with the intention of
> running revisor or pungi inside. This doesn't work, because mock
> creates a v9 berkeley DB inside the chroot, but the libraries/apps
> inside the chroot only support bdb v8. So running "rpm -qa" inside a
> fresh F9 chroot on F11 gives you these errors:
> mock-chroot> rpm -qa
> rpmdb: /var/lib/rpm/Packages: unsupported hash version: 9
> error: cannot open Packages index using db3 - Invalid argument (22)
> error: cannot open Packages database in /var/lib/rpm
There is a bug in mock it uses the host rpm to build the database instead of
the guest rpm. In some minor version changes either
`rm /var/lib/mock/XXX/root/var/lib/rpm/__db.*'
or
`rpm -r /var/lib/mock/XXX/root --rebuilddb'
(which also removes __db.*)
helps but in this F9<->F11 case already /var/lib/rpm/Packages is incompatible:
/var/lib/mock/fedora-9-x86_64/root/var/lib/rpm/Packages: Berkeley DB (Hash, version 8, native byte-order)
vs.
/var/lib/mock/fedora-9-x86_64/root/var/lib/rpm/Packages: Berkeley DB (Hash, version 9, native byte-order)
I understand it may be difficult for mock to bootstrap the chroot with the
guest rpm version - not existing at that time yet.
[...]
> Finally I tried to use db_dump on the F11 host to dump the database
> using the v9 tools, to go into the chroot and use db_load to import it
> using the v8 tools, but this also results in a v9 database being
> loaded :(
`db_load' on F9 is already too new for its rpm in use but compat-db works:
mock -r fedora-9-x86_64 --init
mock -r fedora-9-x86_64 --install compat-db
db_dump -f /var/lib/mock/fedora-9-x86_64/root/tmp/pkgdb /var/lib/mock/fedora-9-x86_64/root/var/lib/rpm/Packages
rm /var/lib/mock/fedora-9-x86_64/root/var/lib/rpm/*
mock -r fedora-9-x86_64 --shell
db45_load -f /tmp/pkgdb /var/lib/rpm/Packages
rpm --rebuilddb
rpm -q bash
bash-3.2-23.fc9.x86_64
While F9 is EOLed by Fedora I find this as a real problem running epel (both
epel-4 and epel-5) in mock on any recent Fedoras.
Another workaround would be to run the guest in kvm (or xen on older CPUs).
Regards,
Jan
More information about the Server-devel
mailing list