summaryrefslogtreecommitdiffstats
path: root/src/seastar/install-dependencies.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/seastar/install-dependencies.sh')
-rwxr-xr-xsrc/seastar/install-dependencies.sh69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/seastar/install-dependencies.sh b/src/seastar/install-dependencies.sh
new file mode 100755
index 00000000..0d1eca56
--- /dev/null
+++ b/src/seastar/install-dependencies.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+#
+# This file is open source software, licensed to you under the terms
+# of the Apache License, Version 2.0 (the "License"). See the NOTICE file
+# distributed with this work for additional information regarding copyright
+# ownership. You may not use this file except in compliance with the License.
+#
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+. /etc/os-release
+
+if [ "$ID" = "ubuntu" ] || [ "$ID" = "debian" ]; then
+ if [ "$VERSION_ID" = "14.04" ]; then
+ if [ ! -f /usr/bin/add-apt-repository ]; then
+ apt-get -y install software-properties-common
+ fi
+
+ add-apt-repository -y ppa:ubuntu-toolchain-r/test
+ apt-get -y update
+ fi
+ apt-get install -y ninja-build ragel libhwloc-dev libnuma-dev libpciaccess-dev libcrypto++-dev libboost-all-dev libxml2-dev xfslibs-dev libgnutls28-dev liblz4-dev libsctp-dev gcc make libprotobuf-dev protobuf-compiler python3 systemtap-sdt-dev libtool cmake libyaml-cpp-dev libc-ares-dev stow
+ if [ "$ID" = "ubuntu" ]; then
+ apt-get install -y g++-5
+ echo "g++-5 is installed for Seastar. To build Seastar with g++-5, specify '--compiler=g++-5' on configure.py"
+ else # debian
+ apt-get install -y g++
+ fi
+elif [ "$ID" = "centos" ] || [ "$ID" = "fedora" ]; then
+ if [ "$ID" = "centos" ]; then
+ yum install -y epel-release
+ cat > /etc/yum.repos.d/scylladb-copr.repo <<EOF
+[scylladb-scylla-3rdparty]
+name=Copr repo for scylla-3rdparty owned by scylladb
+baseurl=https://copr-be.cloud.fedoraproject.org/results/scylladb/scylla-3rdparty/epel-7-x86_64/
+type=rpm-md
+skip_if_unavailable=True
+gpgcheck=1
+gpgkey=https://copr-be.cloud.fedoraproject.org/results/scylladb/scylla-3rdparty/pubkey.gpg
+repo_gpgcheck=0
+enabled=1
+enabled_metadata=1
+EOF
+ fi
+ yum install -y hwloc-devel numactl-devel libpciaccess-devel cryptopp-devel libxml2-devel xfsprogs-devel gnutls-devel lksctp-tools-devel lz4-devel gcc make protobuf-devel protobuf-compiler systemtap-sdt-devel libtool cmake yaml-cpp-devel c-ares-devel stow
+ if [ "$ID" = "fedora" ]; then
+ dnf install -y gcc-c++ ninja-build ragel boost-devel libubsan libasan libatomic
+ else # centos
+ yum install -y scylla-binutils scylla-gcc73-c++ ninja-build ragel-devel scylla-boost163-devel scylla-libubsan73-static scylla-libasan73-static scylla-libstdc++73-static scylla-libatomic73-static python34
+ echo "g++-7.3 is installed for Seastar. To build Seastar with g++-7.3, specify '--compiler=/opt/scylladb/bin/g++ --static-stdc++' on configure.py"
+ echo "Before running ninja-build, execute following command: . /etc/profile.d/scylla.sh"
+ fi
+elif [ "$ID" = "arch" -o "$ID_LIKE" = "arch" ]; then
+ pacman -Sy --needed gcc ninja ragel boost boost-libs hwloc numactl libpciaccess crypto++ libxml2 xfsprogs gnutls lksctp-tools lz4 make protobuf systemtap libtool cmake yaml-cpp stow
+elif [ "$ID" = "opensuse-leap" ]; then
+ zypper install -y c-ares-devel cmake hwloc-devel libboost_filesystem1_66_0 libboost_filesystem1_66_0-devel libboost_program_options1_66_0 libboost_program_options1_66_0-devel libboost_system1_66_0 libboost_system1_66_0-devel libboost_test1_66_0 libboost_test1_66_0-devel libboost_thread1_66_0 libboost_thread1_66_0-devel libcryptopp-devel libboost_atomic1_66_0 libboost_atomic1_66_0-devel libboost_date_time1_66_0 libboost_date_time1_66_0-devel libboost_chrono1_66_0 libboost_chrono1_66_0-devel libgnutls-devel libgnutlsxx28 liblz4-devel libnuma-devel lksctp-tools-devel ninja protobuf-devel ragel xfsprogs-devel yaml-cpp-devel libtool stow
+else
+ echo "Your system ($ID) is not supported by this script. Please install dependencies manually."
+ exit 1
+fi