ceph/bootstrap
2015-05-05 16:35:38 +02:00

98 lines
3.3 KiB
Bash
Executable File

#!/bin/sh
set -e
case "$(uname -s)" in
Linux)
case "$(lsb_release --id --short)" in
Ubuntu|Debian)
# Note that we install the system version of python-libvirt here
# instead of relying on PyPI for that particular module. THe reason for
# this is that Ubuntu Precise ships libvirt 0.9.8, and PyPI's
# python-libvirt packages require libvirt >= 1.0.2.
# Some options for resolving this situation would be choosing some or
# all of the following:
# A) Removing support for Precise,
# B) Removing support for downburst,
# C) Adding "Precise" conditionals somewhere, eg. conditionalizing
# this bootstrap script to only use the python-libvirt package on
# Ubuntu Precise.
for package in python-dev python-pip python-virtualenv libevent-dev python-libvirt libmysqlclient-dev; do
if [ "$(dpkg --status -- $package|sed -n 's/^Status: //p')" != "install ok installed" ]; then
# add a space after old values
missing="${missing:+$missing }$package"
fi
done
if [ -n "$missing" ]; then
echo "$0: missing required packages, please install them:" 1>&2
echo "sudo apt-get install $missing"
exit 1
fi
;;
Fedora)
for package in python-pip python-virtualenv libevent-devel libvirt-python community-mysql-devel; do
if [ "$(rpm -q $package)" == "package $package is not installed" ]; then
missing="${missing:+$missing }$package"
fi
done
if [ -n "$missing" ]; then
echo "$0: missing required packages, please install them:" 1>&2
echo "sudo yum install $missing"
exit 1
fi
;;
"openSUSE project"|"SUSE LINUX")
for package in python-pip python-virtualenv libevent-devel libvirt-python libmysqlclient-devel; do
if [ "$(rpm -q $package)" == "package $package is not installed" ]; then
missing="${missing:+$missing }$package"
fi
done
if [ -n "$missing" ]; then
echo "$0: missing required packages, please install them:" 1>&2
echo "sudo zypper install $missing"
exit 1
fi
;;
*)
echo "This script does not support your Linux distribution yet. Patches encouraged!"
exit 1
;;
esac
;;
Darwin)
if ! which brew > /dev/null; then
echo "You need Homebrew: http://brew.sh/"
exit 1
fi
for keg in python libvirt libevent mysql; do
if brew list $keg >/dev/null 2>&1; then
echo "Found $keg"
else
brew install $keg
fi
done
;;
*)
echo "This script does not support your OS yet. Patches encouraged!"
exit 1
;;
esac
if [ -z "$NO_CLOBBER" ] || [ ! -e ./virtualenv ]; then
if ! which virtualenv > /dev/null; then
pip install virtualenv
fi
# site packages needed because libvirt python bindings are not nicely
# packaged
virtualenv --system-site-packages --setuptools virtualenv
# avoid pip bugs
./virtualenv/bin/pip install --upgrade pip
# work-around change in pip 1.5
./virtualenv/bin/pip install setuptools --no-use-wheel --upgrade
fi
./virtualenv/bin/pip install -r requirements.txt
./virtualenv/bin/python setup.py develop