Detect missing packages with yum
yum -y doesn't report an error when packages are missing (see [1] for upstream discussion). Thus we run the output of yum through a small awk script looking for missing packages output. The one change required for RHEL is that python-wsgiref is included in the distro python, so doesn't need a separate package. [1] https://bugzilla.redhat.com/show_bug.cgi?id=965567 Change-Id: I9908ff4edbf2b0d961d25837a08a34e1417bbb02
This commit is contained in:
parent
0dfbf9b4b9
commit
b27f16d716
@ -13,6 +13,6 @@ python-lxml #dist:f18,f19,f20,rhel7
|
||||
python-paste-deploy #dist:f18,f19,f20,rhel7
|
||||
python-routes
|
||||
python-sqlalchemy
|
||||
python-wsgiref
|
||||
python-wsgiref #dist:f18,f19,f20
|
||||
pyxattr
|
||||
zlib-devel # testonly
|
||||
|
@ -938,9 +938,24 @@ function yum_install {
|
||||
[[ "$OFFLINE" = "True" ]] && return
|
||||
local sudo="sudo"
|
||||
[[ "$(id -u)" = "0" ]] && sudo="env"
|
||||
|
||||
# The manual check for missing packages is because yum -y assumes
|
||||
# missing packages are OK. See
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=965567
|
||||
$sudo http_proxy=$http_proxy https_proxy=$https_proxy \
|
||||
no_proxy=$no_proxy \
|
||||
yum install -y "$@"
|
||||
yum install -y "$@" 2>&1 | \
|
||||
awk '
|
||||
BEGIN { fail=0 }
|
||||
/No package/ { fail=1 }
|
||||
{ print }
|
||||
END { exit fail }' || \
|
||||
die $LINENO "Missing packages detected"
|
||||
|
||||
# also ensure we catch a yum failure
|
||||
if [[ ${PIPESTATUS[0]} != 0 ]]; then
|
||||
die $LINENO "Yum install failure"
|
||||
fi
|
||||
}
|
||||
|
||||
# zypper wrapper to set arguments correctly
|
||||
|
Loading…
Reference in New Issue
Block a user