[poky] Why rpm install process is not working out of the pseudo context

Lu, Lianhao lianhao.lu at intel.com
Tue Jan 25 22:57:01 PST 2011


Hi guys,

Does anyone know why the RPM install process should be all executed in the pseudo context? Thank you!

I found that the rpm install process is not working when I manually enter the rpm command in the terminal (without pseudo).

The install process for rpm is:
1. generate db from solved db
        ${RPM} -D "_rpmds_sysinfo_path ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/etc/rpm/sysinfo" \
                -D "_dbpath ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/install" -D "`cat ${RPMCONF_TARGET_BASE}.macro`" \
                -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync" \
                -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
                ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/install/install.manifest

2. pull out a list of what to install
	${RPM} -D "_dbpath ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/install" -qa --yaml \
                | grep -i 'Packageorigin' | cut -d : -f 2 > ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/install/install_solution.manifest

3. actual install
	${RPM} --root ${SDK_OUTPUT}/${SDKTARGETSYSROOT} \
                -D "_rpmds_sysinfo_path ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/etc/rpm/sysinfo" \
                -D "_dbpath ${rpmlibdir}" \
                --noscripts --notriggers --noparentdirs --nolinktos \
                -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync private" \
                -Uhv ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/install/install_solution.manifest

If we put all the 3 steps under pseudo context, it works fine. But if all the 3 steps are out of pseudo context, the step 2) would fail complaining about:
rpmdb: configured environment flags incompatible with existing environment
error: cannot open Package(0) index using db3 - Invalid argument (22)
error: cannot open Package database in /home/lulianhao/poky-build/meta-toolchain/tmp/work/mips-poky-linux/meta-toolchain-sdk-1.0-r1/sdk/image//opt/poky/0.9+snapshot/sysroots/mips-poky-linux/install

If I add -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync" options to step 2), it would succeed. But in step 3), nothing actually gets installed though the rpm doesn't report any error in step 3).

Best Regards,
-Lianhao Lu



More information about the poky mailing list