2021-10-12 20:03:20 +00:00
|
|
|
#!/bin/sh -e
|
|
|
|
|
|
|
|
OS=$(uname -s)
|
|
|
|
ARCH=$(uname -m)
|
|
|
|
|
|
|
|
DIR=
|
|
|
|
|
|
|
|
if [ "${OS}" = "Linux" ]
|
|
|
|
then
|
2022-07-17 21:16:54 +00:00
|
|
|
if [ "${ARCH}" = "x86_64" -o "${ARCH}" = "amd64" ]
|
2021-10-12 20:03:20 +00:00
|
|
|
then
|
|
|
|
DIR="amd64"
|
2022-07-17 21:16:54 +00:00
|
|
|
elif [ "${ARCH}" = "aarch64" -o "${ARCH}" = "arm64" ]
|
2021-10-12 20:03:20 +00:00
|
|
|
then
|
2022-09-27 07:00:46 +00:00
|
|
|
# If the system has >=ARMv8.2 (https://en.wikipedia.org/wiki/AArch64), choose the corresponding build, else fall back to a v8.0
|
|
|
|
# compat build. Unfortunately, the ARM ISA level cannot be read directly, we need to guess from the "features" in /proc/cpuinfo.
|
|
|
|
# Also, the flags in /proc/cpuinfo are named differently than the flags passed to the compiler (cmake/cpu_features.cmake).
|
2022-09-28 13:57:00 +00:00
|
|
|
ARMV82=$(grep -m 1 'Features' /proc/cpuinfo | awk '/asimd/ && /sha1/ && /aes/ && /atomics/ && /lrcpc/')
|
2022-09-26 13:22:53 +00:00
|
|
|
if [ "${ARMV82}" ]
|
|
|
|
then
|
|
|
|
DIR="aarch64"
|
|
|
|
else
|
|
|
|
DIR="aarch64v80compat"
|
|
|
|
fi
|
2022-07-17 21:16:54 +00:00
|
|
|
elif [ "${ARCH}" = "powerpc64le" -o "${ARCH}" = "ppc64le" ]
|
2021-10-12 20:03:20 +00:00
|
|
|
then
|
|
|
|
DIR="powerpc64le"
|
|
|
|
fi
|
|
|
|
elif [ "${OS}" = "FreeBSD" ]
|
|
|
|
then
|
2022-07-17 21:16:54 +00:00
|
|
|
if [ "${ARCH}" = "x86_64" -o "${ARCH}" = "amd64" ]
|
2021-10-12 20:03:20 +00:00
|
|
|
then
|
|
|
|
DIR="freebsd"
|
|
|
|
fi
|
|
|
|
elif [ "${OS}" = "Darwin" ]
|
|
|
|
then
|
2022-07-17 21:16:54 +00:00
|
|
|
if [ "${ARCH}" = "x86_64" -o "${ARCH}" = "amd64" ]
|
2021-10-12 20:03:20 +00:00
|
|
|
then
|
|
|
|
DIR="macos"
|
2021-11-09 20:14:10 +00:00
|
|
|
elif [ "${ARCH}" = "aarch64" -o "${ARCH}" = "arm64" ]
|
2021-10-12 20:03:20 +00:00
|
|
|
then
|
|
|
|
DIR="macos-aarch64"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -z "${DIR}" ]
|
|
|
|
then
|
2022-09-26 11:40:09 +00:00
|
|
|
echo "Operating system '${OS}' / architecture '${ARCH}' is unsupported."
|
2021-10-12 20:03:20 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2022-12-11 05:57:04 +00:00
|
|
|
clickhouse_download_filename_prefix="clickhouse"
|
|
|
|
clickhouse="$clickhouse_download_filename_prefix"
|
2022-12-02 22:11:08 +00:00
|
|
|
|
|
|
|
i=0
|
|
|
|
while [ -f "$clickhouse" ]
|
|
|
|
do
|
2022-12-11 05:57:04 +00:00
|
|
|
clickhouse="${clickhouse_download_filename_prefix}.${i}"
|
2022-12-02 22:11:08 +00:00
|
|
|
i=$(($i+1))
|
|
|
|
done
|
|
|
|
|
2021-10-12 20:03:20 +00:00
|
|
|
URL="https://builds.clickhouse.com/master/${DIR}/clickhouse"
|
2021-10-17 02:52:00 +00:00
|
|
|
echo
|
2022-12-02 22:11:08 +00:00
|
|
|
echo "Will download ${URL} into ${clickhouse}"
|
2021-10-17 02:52:00 +00:00
|
|
|
echo
|
2022-12-02 22:11:08 +00:00
|
|
|
curl "${URL}" -o "${clickhouse}" && chmod a+x "${clickhouse}" || exit 1
|
2021-10-17 02:52:00 +00:00
|
|
|
echo
|
2021-10-12 20:03:20 +00:00
|
|
|
echo "Successfully downloaded the ClickHouse binary, you can run it as:
|
2022-12-02 22:11:08 +00:00
|
|
|
./${clickhouse}"
|
2021-10-12 20:03:20 +00:00
|
|
|
|
|
|
|
if [ "${OS}" = "Linux" ]
|
|
|
|
then
|
2021-10-17 02:52:00 +00:00
|
|
|
echo
|
2021-10-12 20:03:20 +00:00
|
|
|
echo "You can also install it:
|
2022-12-02 22:11:08 +00:00
|
|
|
sudo ./${clickhouse} install"
|
2021-10-12 20:03:20 +00:00
|
|
|
fi
|