yum-minimal: clear our rpm/dnf/yum data in chroot
I have seem some occasional odd failures coming from the "dnf -y update" done by elements/base/install.d/00-up-to-date. dnf seems to sometimes think a package is not installed when it really is. It then seems to try and re-install them, but notices they are installed, and then bails with a failure exit [1]. The packages that seem to cause this vary, but the common thread is that they seem to have all been installed during the initial phase of installing the package manager in the chroot. I suspect that when we are building the chroot, we do our initial install with the "external" yum & rpm. Then we start using the dnf/yum in the chroot, but we're actually using meta-data created by the *external* tools -- which could be vastly different versions or who-knows-what. While I honestly I don't have an exact root cause, empirically I've found rebuilding the rpm db always seems to fix things up. So this change takes care to rebuild the rpm db with the chroot version of rpm, and clear out the package metadata for a refresh with "update". This should hopefully put us in a consistent state. [1] http://paste.openstack.org/show/487356/ Change-Id: I565df23897ae511356c4861fdbe63823fa6b6ff9
This commit is contained in:
parent
352e58ceb7
commit
6f622fb7c9
@ -177,8 +177,15 @@ else
|
|||||||
_install_pkg_manager yum
|
_install_pkg_manager yum
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# bootstrap the environment within the chroot
|
# we just installed yum/dnf with "outside" tools (yum/rpm) which
|
||||||
sudo -E chroot $TARGET_ROOT ${YUM} makecache
|
# might have created /var/lib/[yum|rpm] (etc) that are slighlty
|
||||||
|
# incompatible. Refresh everything with the in-chroot tools
|
||||||
|
sudo -E chroot $TARGET_ROOT rpm --rebuilddb
|
||||||
|
sudo -E chroot $TARGET_ROOT ${YUM} clean all
|
||||||
|
|
||||||
|
# bootstrap the environment within the chroot; bring in new
|
||||||
|
# metadata with an update and install some base packages we need.
|
||||||
|
sudo -E chroot $TARGET_ROOT ${YUM} -y update
|
||||||
sudo -E chroot $TARGET_ROOT ${YUM} -y \
|
sudo -E chroot $TARGET_ROOT ${YUM} -y \
|
||||||
--setopt=cachedir=/tmp/yum/$ARCH/$DIB_RELEASE \
|
--setopt=cachedir=/tmp/yum/$ARCH/$DIB_RELEASE \
|
||||||
install passwd findutils sudo util-linux-ng
|
install passwd findutils sudo util-linux-ng
|
||||||
|
Loading…
Reference in New Issue
Block a user