RHEL6 support rpms

Install some rpms required for operation on RHEL6.  Additionally,
remove some system packages that interfere with pip installs.

Change-Id: I273ce59d7bf066e73d524f61b8ad048599101dab
This commit is contained in:
Ian Wienand 2013-04-26 11:28:29 +10:00
parent cd30ad90b8
commit 7919d851a9
4 changed files with 53 additions and 3 deletions

View File

@ -1,14 +1,19 @@
bridge-utils
curl
dbus
euca2ools # only for testing client
gcc # dist:rhel6 [2]
git-core
openssh-server
openssl
libxml2-devel # dist:rhel6 [2]
libxslt-devel # dist:rhel6 [2]
psmisc
pylint
python-netaddr
python-pep8
python-pip
python-prettytable # dist:rhel6 [1]
python-unittest2
python-virtualenv
screen
@ -16,3 +21,12 @@ tar
tcpdump
unzip
wget
# [1] : some of installed tools have unversioned dependencies on this,
# but others have versioned (<=0.7). So if a later version (0.7.1)
# gets installed in response to an unversioned dependency, it breaks.
# This pre-installs a compatible 0.6(ish) version from RHEL
# [2] : RHEL6 rpm versions of python-lxml is old, and has to be
# removed. Several tools rely on it, so we install the dependencies
# pip needs to build it here (see tools/install_prereqs.sh)

View File

@ -1,3 +1,4 @@
gcc
libxml2-devel
python-argparse
python-devel

View File

@ -525,7 +525,6 @@ failed() {
# an error. It is also useful for following along as the install occurs.
set -o xtrace
# Install Packages
# ================
@ -546,6 +545,42 @@ if is_service_enabled q-agt; then
install_quantum_agent_packages
fi
#
# System-specific preconfigure
# ============================
if [[ is_fedora && $DISTRO =~ (rhel6) ]]; then
# An old version (2.0.1) of python-crypto is probably installed on
# a fresh system, via the dependency chain
# cas->python-paramiko->python-crypto (related to anaconda).
# Unfortunately, "pip uninstall pycrypto" will remove the
# .egg-info file for this rpm-installed version, but leave most of
# the actual library files behind in /usr/lib64/python2.6/Crypto.
# When later "pip install pycrypto" happens, the built library
# will be installed over these existing files; the result is a
# useless mess of old, rpm-packaged files and pip-installed files.
# Unsurprisingly, the end result is it doesn't work. Thus we have
# to get rid of it now so that any packages that pip-install
# pycrypto get a "clean slate".
# (note, we have to be careful about other RPM packages specified
# pulling in python-crypto as well. That's why RHEL6 doesn't
# install python-paramiko packages for example...)
uninstall_package python-crypto
# A similar thing happens for python-lxml (a dependency of
# ipa-client, an auditing thing we don't care about). We have the
# build-dependencies the lxml pip-install will need (gcc,
# libxml2-dev & libxslt-dev) in the "general" rpm lists
uninstall_package python-lxml
# If the dbus rpm was installed by the devstack rpm dependencies
# then you may hit a bug where the uuid isn't generated because
# the service was never started (PR#598200), causing issues for
# Nova stopping later on complaining that
# '/var/lib/dbus/machine-id' doesn't exist.
sudo service messagebus restart
fi
TRACK_DEPENDS=${TRACK_DEPENDS:-False}
# Install python packages into a virtualenv so that we can track them
@ -559,7 +594,6 @@ if [[ $TRACK_DEPENDS = True ]]; then
$DEST/.venv/bin/pip freeze > $DEST/requires-pre-pip
fi
# Check Out and Install Source
# ----------------------------

View File

@ -42,7 +42,8 @@ NOW=$(date "+%s")
LAST_RUN=$(head -1 $PREREQ_RERUN_MARKER 2>/dev/null || echo "0")
DELTA=$(($NOW - $LAST_RUN))
if [[ $DELTA -lt $PREREQ_RERUN_SECONDS && -z "$FORCE_PREREQ" ]]; then
echo "Re-run time has not expired ($(($PREREQ_RERUN_SECONDS - $DELTA)) seconds remaining); exiting..."
echo "Re-run time has not expired ($(($PREREQ_RERUN_SECONDS - $DELTA)) seconds remaining) "
echo "and FORCE_PREREQ not set; exiting..."
return 0
fi