echo $ID
}
+function distro_version() {
+ source /etc/os-release
+ echo $VERSION
+}
+
function install() {
for package in "$@" ; do
install_one $package
esac
}
+function install_cmake3_on_centos7 {
+ source /etc/os-release
+ local MAJOR_VERSION="$(echo $VERSION_ID | cut -d. -f1)"
+ sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/$MAJOR_VERSION/x86_64/
+ sudo yum install --nogpgcheck -y epel-release
+ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$MAJOR_VERSION
+ sudo yum install -y cmake3
+}
+
+function install_cmake3_on_xenial {
+ install_pkg_on_ubuntu \
+ ceph-cmake \
+ d278b9d28de0f6b88f56dfe1e8bf684a41577210 \
+ xenial \
+ force \
+ cmake
+}
+
+function install_pkg_on_ubuntu {
+ local project=$1
+ shift
+ local sha1=$1
+ shift
+ local codename=$1
+ shift
+ local force=$1
+ shift
+ local pkgs=$@
+ local missing_pkgs
+ if [ $force = "force" ]; then
+ missing_pkgs="$@"
+ else
+ for pkg in $pkgs; do
+ if ! dpkg -s $pkg &> /dev/null; then
+ missing_pkgs+=" $pkg"
+ fi
+ done
+ fi
+ if test -n "$missing_pkgs"; then
+ local shaman_url="https://shaman.ceph.com/api/repos/${project}/master/${sha1}/ubuntu/${codename}/repo"
+ sudo curl --silent --location $shaman_url --output /etc/apt/sources.list.d/$project.list
+ sudo env DEBIAN_FRONTEND=noninteractive apt-get update -y -o Acquire::Languages=none -o Acquire::Translation=none || true
+ sudo env DEBIAN_FRONTEND=noninteractive apt-get install --allow-unauthenticated -y $missing_pkgs
+ fi
+}
+
#######################################################################
function control_osd() {
# Install required tools
############################################
echo "Install required tools"
-install git cmake
CURRENT_PATH=`pwd`
# for rocksdb
case $(distro_id) in
ubuntu|debian|devuan)
- install g++ libsnappy-dev zlib1g-dev libbz2-dev libradospp-dev
+ install git g++ libsnappy-dev zlib1g-dev libbz2-dev libradospp-dev
+ case $(distro_version) in
+ *Xenial*)
+ install_cmake3_on_xenial
+ ;;
+ *)
+ install cmake
+ ;;
+ esac
;;
centos|fedora|rhel)
- install gcc-c++.x86_64 snappy-devel zlib zlib-devel bzip2 bzip2-devel libradospp-devel.x86_64
+ install git gcc-c++.x86_64 snappy-devel zlib zlib-devel bzip2 bzip2-devel libradospp-devel.x86_64
+ if [ $(distro_id) = "fedora" ]; then
+ install cmake
+ else
+ install_cmake3_on_centos7
+ fi
;;
opensuse*|suse|sles)
- install gcc-c++ snappy-devel zlib-devel libbz2-devel libradospp-devel
+ install git gcc-c++ snappy-devel zlib-devel libbz2-devel libradospp-devel
;;
*)
echo "$(distro_id) is unknown, $@ will have to be installed manually."
# compile code
cd rocksdb
-mkdir build && cd build && cmake -DWITH_LIBRADOS=ON -DWITH_SNAPPY=ON -DWITH_GFLAGS=OFF -DFAIL_ON_WARNINGS=OFF ..
+if type cmake3 > /dev/null 2>&1 ; then
+ CMAKE=cmake3
+else
+ CMAKE=cmake
+fi
+mkdir build && cd build && ${CMAKE} -DWITH_LIBRADOS=ON -DWITH_SNAPPY=ON -DWITH_GFLAGS=OFF -DFAIL_ON_WARNINGS=OFF ..
make rocksdb_env_librados_test -j8
echo "Copy ceph.conf"