From 7877a98bd9c00db5e81dd2f8c734cba2bab20be7 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 12 Aug 2022 09:26:17 +0200 Subject: Merging upstream version 1.36.0. Signed-off-by: Daniel Baumann --- packaging/installer/dependencies/arch.sh | 1 - packaging/installer/dependencies/centos.sh | 3 - packaging/installer/dependencies/debian.sh | 1 - packaging/installer/dependencies/fedora.sh | 1 - packaging/installer/dependencies/freebsd.sh | 2 - packaging/installer/dependencies/gentoo.sh | 1 - packaging/installer/dependencies/ol.sh | 22 ++++- packaging/installer/dependencies/opensuse.sh | 1 - packaging/installer/dependencies/ubuntu.sh | 1 - packaging/installer/install-required-packages.sh | 117 +++-------------------- packaging/installer/kickstart.sh | 30 +++++- packaging/installer/methods/freebsd.md | 2 +- packaging/installer/methods/manual.md | 14 +-- packaging/installer/methods/pfsense.md | 1 - packaging/installer/methods/source.md | 1 - packaging/installer/netdata-updater.sh | 63 ++++++------ 16 files changed, 97 insertions(+), 164 deletions(-) (limited to 'packaging/installer') diff --git a/packaging/installer/dependencies/arch.sh b/packaging/installer/dependencies/arch.sh index fbad75406..dc37bcb9a 100755 --- a/packaging/installer/dependencies/arch.sh +++ b/packaging/installer/dependencies/arch.sh @@ -24,7 +24,6 @@ declare -a package_tree=( libuv lz4 openssl - judy libelf git pkgconfig diff --git a/packaging/installer/dependencies/centos.sh b/packaging/installer/dependencies/centos.sh index eea71ca32..f5f478ac1 100755 --- a/packaging/installer/dependencies/centos.sh +++ b/packaging/installer/dependencies/centos.sh @@ -139,9 +139,6 @@ validate_tree_centos() { echo >&2 " > Updating libarchive ..." dnf ${opts} install libarchive - echo >&2 " > Installing Judy-devel directly ..." - dnf ${opts} install http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/Judy-devel-1.0.5-18.module_el8.3.0+757+d382997d.x86_64.rpm - dnf makecache --refresh elif [[ $(os_version) =~ ^7(\..*)?$ ]]; then package_manager=yum echo >&2 " > Checking for EPEL ..." diff --git a/packaging/installer/dependencies/debian.sh b/packaging/installer/dependencies/debian.sh index e8c2d0c6c..61ff3e4aa 100755 --- a/packaging/installer/dependencies/debian.sh +++ b/packaging/installer/dependencies/debian.sh @@ -31,7 +31,6 @@ package_tree=" libuv1-dev liblz4-dev libssl-dev - libjudy-dev libelf-dev python python3 diff --git a/packaging/installer/dependencies/fedora.sh b/packaging/installer/dependencies/fedora.sh index 62a129f4c..4cfe7cbb1 100755 --- a/packaging/installer/dependencies/fedora.sh +++ b/packaging/installer/dependencies/fedora.sh @@ -43,7 +43,6 @@ declare -a package_tree=( libuv-devel lz4-devel openssl-devel - Judy-devel elfutils-libelf-devel git pkgconfig diff --git a/packaging/installer/dependencies/freebsd.sh b/packaging/installer/dependencies/freebsd.sh index f9c53f428..6afaca337 100755 --- a/packaging/installer/dependencies/freebsd.sh +++ b/packaging/installer/dependencies/freebsd.sh @@ -9,7 +9,6 @@ DONT_WAIT=0 package_tree=" git - gcc autoconf autoconf-archive autogen @@ -26,7 +25,6 @@ package_tree=" libuv liblz4 openssl - Judy python3 " diff --git a/packaging/installer/dependencies/gentoo.sh b/packaging/installer/dependencies/gentoo.sh index ae1a4af27..ae82cf3b3 100755 --- a/packaging/installer/dependencies/gentoo.sh +++ b/packaging/installer/dependencies/gentoo.sh @@ -28,7 +28,6 @@ package_tree=" dev-libs/libuv app-arch/lz4 dev-libs/openssl - dev-libs/judy virtual/libelf dev-lang/python dev-libs/libuv diff --git a/packaging/installer/dependencies/ol.sh b/packaging/installer/dependencies/ol.sh index 8d0feb3f5..020bf63cc 100755 --- a/packaging/installer/dependencies/ol.sh +++ b/packaging/installer/dependencies/ol.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Package tree used for installing netdata on distribution: -# << Oracle Linux: [8] >> +# << Oracle Linux: [8, 9] >> set -e @@ -90,13 +90,17 @@ check_flags() { } validate_tree_ol() { - opts= if [ "${NON_INTERACTIVE}" -eq 1 ]; then echo >&2 "Running in non-interactive mode" opts="-y" fi + # shellcheck disable=SC1091 + source /etc/os-release + + # shellcheck disable=SC2153 + version="$(echo "${VERSION}" | cut -f 1 -d '.')" echo >&2 " > Checking for config-manager ..." if ! dnf config-manager &> /dev/null; then @@ -106,9 +110,17 @@ validate_tree_ol() { fi echo " > Checking for CodeReady Builder ..." - if ! dnf repolist | grep ol8_codeready_builder; then - if prompt "CodeReadyBuilder not found, shall I install it?"; then - dnf ${opts} config-manager --set-enabled ol8_codeready_builder || enable_repo + if [[ "${version}" =~ ^8(\..*)?$ ]]; then + if ! dnf repolist enabled | grep ol8_codeready_builder; then + if prompt "CodeReadyBuilder not found, shall I install it?"; then + dnf ${opts} config-manager --set-enabled ol8_codeready_builder || enable_repo + fi + fi + elif [[ "${version}" =~ ^9(\..*)?$ ]]; then + if ! dnf repolist enabled | grep ol9_codeready_builder; then + if prompt "CodeReadyBuilder not found, shall I install it?"; then + dnf ${opts} config-manager --set-enabled ol9_codeready_builder || enable_repo + fi fi fi diff --git a/packaging/installer/dependencies/opensuse.sh b/packaging/installer/dependencies/opensuse.sh index 7c5b840e7..51a6d909e 100755 --- a/packaging/installer/dependencies/opensuse.sh +++ b/packaging/installer/dependencies/opensuse.sh @@ -29,7 +29,6 @@ declare -a package_tree=( libuv-devel liblz4-devel libopenssl-devel - judy-devel libelf-devel git tar diff --git a/packaging/installer/dependencies/ubuntu.sh b/packaging/installer/dependencies/ubuntu.sh index 2bf116a11..b99098821 100755 --- a/packaging/installer/dependencies/ubuntu.sh +++ b/packaging/installer/dependencies/ubuntu.sh @@ -31,7 +31,6 @@ package_tree=" libuv1-dev liblz4-dev libssl-dev - libjudy-dev libelf-dev python3 " diff --git a/packaging/installer/install-required-packages.sh b/packaging/installer/install-required-packages.sh index 8855acebd..da3cf5e4a 100755 --- a/packaging/installer/install-required-packages.sh +++ b/packaging/installer/install-required-packages.sh @@ -20,7 +20,6 @@ fi PACKAGES_NETDATA=${PACKAGES_NETDATA-1} PACKAGES_NETDATA_PYTHON=${PACKAGES_NETDATA_PYTHON-0} PACKAGES_NETDATA_PYTHON3=${PACKAGES_NETDATA_PYTHON3-1} -PACKAGES_NETDATA_PYTHON_MYSQL=${PACKAGES_NETDATA_PYTHON_MYSQL-0} PACKAGES_NETDATA_PYTHON_POSTGRES=${PACKAGES_NETDATA_PYTHON_POSTGRES-0} PACKAGES_NETDATA_PYTHON_MONGO=${PACKAGES_NETDATA_PYTHON_MONGO-0} PACKAGES_DEBUG=${PACKAGES_DEBUG-0} @@ -98,20 +97,16 @@ Supported installers (IN): Supported packages (you can append many of them): - netdata-all all packages required to install netdata - including mysql client, postgres client, + including postgres client, node.js, python, sensors, etc - netdata minimum packages required to install netdata - (no mysql client, includes python) + (includes python) - python install python - python3 install python3 - - python-mysql install MySQLdb - (for monitoring mysql, will install python3 version - if python3 is enabled or detected) - - python-postgres install psycopg2 (for monitoring postgres, will install python3 version if python3 is enabled or detected) @@ -670,13 +665,6 @@ declare -A pkg_automake=( ['default']="automake" ) -# required to bundle libJudy -declare -A pkg_libtool=( - ['gentoo']="sys-devel/libtool" - ['clearlinux']="c-basic" - ['default']="libtool" -) - # Required to build libwebsockets and libmosquitto on some systems. declare -A pkg_cmake=( ['gentoo']="dev-util/cmake" @@ -717,13 +705,6 @@ declare -A pkg_bridge_utils=( ['default']="bridge-utils" ) -declare -A pkg_chrony=( - ['gentoo']="net-misc/chrony" - ['clearlinux']="time-server-basic" - ['macos']="WARNING|" - ['default']="chrony" -) - declare -A pkg_curl=( ['gentoo']="net-misc/curl" ['sabayon']="net-misc/curl" @@ -960,55 +941,6 @@ declare -A pkg_python=( ['centos-8']="python2" ) -declare -A pkg_python_mysqldb=( - ['alpine']="py-mysqldb" - ['arch']="mysql-python" - ['centos']="MySQL-python" - ['debian']="python-mysqldb" - ['gentoo']="dev-python/mysqlclient" - ['sabayon']="dev-python/mysqlclient" - ['rhel']="MySQL-python" - ['suse']="python-PyMySQL" - ['clearlinux']="WARNING|" - ['default']="python-mysql" - - # exceptions - ['fedora-24']="python2-mysql" - ['ol-8']="WARNING|" -) - -declare -A pkg_python3_mysqldb=( - ['alpine']="WARNING|" - ['arch']="WARNING|" - ['centos']="WARNING|" - ['debian']="python3-mysqldb" - ['gentoo']="dev-python/mysqlclient" - ['sabayon']="dev-python/mysqlclient" - ['rhel']="WARNING|" - ['ol']="WARNING|" - ['suse']="WARNING|" - ['clearlinux']="WARNING|" - ['macos']="WARNING|" - ['default']="WARNING|" - - # exceptions - ['debian-6']="WARNING|" - ['debian-7']="WARNING|" - ['debian-8']="WARNING|" - ['ubuntu-12.04']="WARNING|" - ['ubuntu-12.10']="WARNING|" - ['ubuntu-13.04']="WARNING|" - ['ubuntu-13.10']="WARNING|" - ['ubuntu-14.04']="WARNING|" - ['ubuntu-14.10']="WARNING|" - ['ubuntu-15.04']="WARNING|" - ['ubuntu-15.10']="WARNING|" - ['centos-7']="python36-mysql" - ['centos-8']="python38-mysql" - ['rhel-7']="python36-mysql" - ['rhel-8']="python38-mysql" -) - declare -A pkg_python_psycopg2=( ['alpine']="py-psycopg2" ['arch']="python2-psycopg2" @@ -1173,17 +1105,6 @@ declare -A pkg_openssl=( ['default']="openssl-devel" ) -declare -A pkg_judy=( - ['debian']="libjudy-dev" - ['ubuntu']="libjudy-dev" - ['suse']="judy-devel" - ['gentoo']="dev-libs/judy" - ['arch']="judy" - ['freebsd']="Judy" - ['fedora']="Judy-devel" - ['default']="NOTREQUIRED" -) - declare -A pkg_python3=( ['gentoo']="dev-lang/python" ['sabayon']="dev-lang/python:3.4" @@ -1341,16 +1262,15 @@ packages() { require_cmd git || suitable_package git require_cmd find || suitable_package find - require_cmd gcc || + require_cmd gcc || require_cmd clang || require_cmd gcc-multilib || suitable_package gcc - require_cmd g++ || suitable_package gxx + require_cmd g++ || require_cmd clang++ || suitable_package gxx require_cmd make || suitable_package make require_cmd autoconf || suitable_package autoconf suitable_package autoconf-archive require_cmd autogen || suitable_package autogen require_cmd automake || suitable_package automake - require_cmd libtoolize || suitable_package libtool require_cmd pkg-config || suitable_package pkg-config require_cmd cmake || suitable_package cmake @@ -1422,7 +1342,6 @@ packages() { suitable_package libuv suitable_package lz4 suitable_package openssl - suitable_package judy fi # ------------------------------------------------------------------------- @@ -1441,7 +1360,6 @@ packages() { # suitable_package python-requests # suitable_package python-pip - [ "${PACKAGES_NETDATA_PYTHON_MYSQL}" -ne 0 ] && suitable_package python-mysqldb [ "${PACKAGES_NETDATA_PYTHON_POSTGRES}" -ne 0 ] && suitable_package python-psycopg2 fi @@ -1455,7 +1373,6 @@ packages() { # suitable_package python3-requests # suitable_package python3-pip - [ "${PACKAGES_NETDATA_PYTHON_MYSQL}" -ne 0 ] && suitable_package python3-mysqldb [ "${PACKAGES_NETDATA_PYTHON_POSTGRES}" -ne 0 ] && suitable_package python3-psycopg2 fi @@ -1591,6 +1508,13 @@ validate_tree_ol() { EOF fi fi + elif [[ "${version}" =~ ^9(\..*)?$ ]]; then + echo " > Checking for CodeReady Builder ..." + if ! run ${sudo} dnf repolist enabled | grep -q codeready; then + if prompt "CodeReady Builder not enabled, shall I enable it?"; then + run ${sudo} dnf config-manager --set-enabled ol9_codeready_builder + fi + fi fi } @@ -1635,9 +1559,6 @@ validate_tree_centos() { echo >&2 " > Updating libarchive ..." run ${sudo} yum ${opts} install libarchive - echo >&2 " > Installing Judy-devel directly ..." - run ${sudo} yum ${opts} install http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/Judy-devel-1.0.5-18.module_el8.3.0+757+d382997d.x86_64.rpm - elif [[ "${version}" =~ ^7(\..*)?$ ]]; then echo >&2 " > Checking for EPEL ..." if ! rpm -qa | grep epel-release > /dev/null; then @@ -1992,7 +1913,7 @@ EOF remote_log() { # log success or failure on our system # to help us solve installation issues - curl > /dev/null 2>&1 -Ss --max-time 3 "https://registry.my-netdata.io/log/installer?status=${1}&error=${2}&distribution=${distribution}&version=${version}&installer=${package_installer}&tree=${tree}&detection=${detection}&netdata=${PACKAGES_NETDATA}&python=${PACKAGES_NETDATA_PYTHON}&python3=${PACKAGES_NETDATA_PYTHON3}&mysql=${PACKAGES_NETDATA_PYTHON_MYSQL}&postgres=${PACKAGES_NETDATA_PYTHON_POSTGRES}&pymongo=${PACKAGES_NETDATA_PYTHON_MONGO}&sensors=${PACKAGES_NETDATA_SENSORS}&database=${PACKAGES_NETDATA_DATABASE}&ebpf=${PACKAGES_NETDATA_EBPF}&firehol=${PACKAGES_FIREHOL}&fireqos=${PACKAGES_FIREQOS}&iprange=${PACKAGES_IPRANGE}&update_ipsets=${PACKAGES_UPDATE_IPSETS}&demo=${PACKAGES_NETDATA_DEMO_SITE}" + curl > /dev/null 2>&1 -Ss --max-time 3 "https://registry.my-netdata.io/log/installer?status=${1}&error=${2}&distribution=${distribution}&version=${version}&installer=${package_installer}&tree=${tree}&detection=${detection}&netdata=${PACKAGES_NETDATA}&python=${PACKAGES_NETDATA_PYTHON}&python3=${PACKAGES_NETDATA_PYTHON3}&postgres=${PACKAGES_NETDATA_PYTHON_POSTGRES}&pymongo=${PACKAGES_NETDATA_PYTHON_MONGO}&sensors=${PACKAGES_NETDATA_SENSORS}&database=${PACKAGES_NETDATA_DATABASE}&ebpf=${PACKAGES_NETDATA_EBPF}&firehol=${PACKAGES_FIREHOL}&fireqos=${PACKAGES_FIREQOS}&iprange=${PACKAGES_IPRANGE}&update_ipsets=${PACKAGES_UPDATE_IPSETS}&demo=${PACKAGES_NETDATA_DEMO_SITE}" } if [ -z "${1}" ]; then @@ -2055,12 +1976,10 @@ while [ -n "${1}" ]; do PACKAGES_NETDATA=1 if [ "${pv}" -eq 2 ]; then PACKAGES_NETDATA_PYTHON=1 - PACKAGES_NETDATA_PYTHON_MYSQL=1 PACKAGES_NETDATA_PYTHON_POSTGRES=1 PACKAGES_NETDATA_PYTHON_MONGO=1 else PACKAGES_NETDATA_PYTHON3=1 - PACKAGES_NETDATA_PYTHON3_MYSQL=1 PACKAGES_NETDATA_PYTHON3_POSTGRES=1 PACKAGES_NETDATA_PYTHON3_MONGO=1 fi @@ -2084,16 +2003,6 @@ while [ -n "${1}" ]; do PACKAGES_NETDATA_PYTHON3=1 ;; - python-mysql | mysql-python | mysqldb | netdata-mysql) - if [ "${pv}" -eq 2 ]; then - PACKAGES_NETDATA_PYTHON=1 - PACKAGES_NETDATA_PYTHON_MYSQL=1 - else - PACKAGES_NETDATA_PYTHON3=1 - PACKAGES_NETDATA_PYTHON3_MYSQL=1 - fi - ;; - python-postgres | postgres-python | psycopg2 | netdata-postgres) if [ "${pv}" -eq 2 ]; then PACKAGES_NETDATA_PYTHON=1 @@ -2133,12 +2042,10 @@ while [ -n "${1}" ]; do PACKAGES_NETDATA=1 if [ "${pv}" -eq 2 ]; then PACKAGES_NETDATA_PYTHON=1 - PACKAGES_NETDATA_PYTHON_MYSQL=1 PACKAGES_NETDATA_PYTHON_POSTGRES=1 PACKAGES_NETDATA_PYTHON_MONGO=1 else PACKAGES_NETDATA_PYTHON3=1 - PACKAGES_NETDATA_PYTHON3_MYSQL=1 PACKAGES_NETDATA_PYTHON3_POSTGRES=1 PACKAGES_NETDATA_PYTHON3_MONGO=1 fi diff --git a/packaging/installer/kickstart.sh b/packaging/installer/kickstart.sh index a1079c3fd..10f6b9664 100755 --- a/packaging/installer/kickstart.sh +++ b/packaging/installer/kickstart.sh @@ -16,12 +16,21 @@ DISCUSSIONS_URL="https://github.com/netdata/netdata/discussions" DOCS_URL="https://learn.netdata.cloud/docs/" FORUM_URL="https://community.netdata.cloud/" KICKSTART_OPTIONS="${*}" -KICKSTART_SOURCE="$(realpath "$0")" +KICKSTART_SOURCE="$( + self=${0} + while [ -L "${self}" ] + do + cd "${self%/*}" || exit 1 + self=$(readlink "${self}") + done + cd "${self%/*}" || exit 1 + echo "$(pwd -P)/${self##*/}" +)" PACKAGES_SCRIPT="https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh" PATH="${PATH}:/usr/local/bin:/usr/local/sbin" PUBLIC_CLOUD_URL="https://app.netdata.cloud" REPOCONFIG_URL_PREFIX="https://packagecloud.io/netdata/netdata-repoconfig/packages" -REPOCONFIG_VERSION="1-1" +REPOCONFIG_VERSION="1-2" START_TIME="$(date +%s)" STATIC_INSTALL_ARCHES="x86_64 armv7l aarch64 ppc64le" TELEMETRY_URL="https://posthog.netdata.cloud/capture/" @@ -696,11 +705,17 @@ update() { return 0 fi + if [ "${INTERACTIVE}" -eq 0 ]; then + opts="--non-interactive" + else + opts="--interactive" + fi + export NETDATA_SAVE_WARNINGS=1 export NETDATA_PROPAGATE_WARNINGS=1 # shellcheck disable=SC2090 export NETDATA_WARNINGS="${NETDATA_WARNINGS}" - if run ${ROOTCMD} "${updater}" --not-running-from-cron; then + if run ${ROOTCMD} "${updater}" ${opts} --not-running-from-cron; then progress "Updated existing install at ${ndprefix}" return 0 else @@ -771,6 +786,8 @@ uninstall() { } detect_existing_install() { + set_tmpdir + progress "Checking for existing installations of Netdata..." if pkg_installed netdata; then @@ -936,6 +953,8 @@ handle_existing_install() { } soft_disable_cloud() { + set_tmpdir + cloud_prefix="${INSTALL_PREFIX}/var/lib/netdata/cloud.d" run ${ROOTCMD} mkdir -p "${cloud_prefix}" @@ -1227,6 +1246,8 @@ try_package_install() { return 2 fi + set_tmpdir + if [ "${DRY_RUN}" -eq 1 ]; then progress "Would attempt to install using native packages..." else @@ -1585,6 +1606,7 @@ set_source_archive_urls() { } install_local_build_dependencies() { + set_tmpdir bash="$(command -v bash 2> /dev/null)" if [ -z "${bash}" ] || [ ! -x "${bash}" ]; then @@ -1665,6 +1687,8 @@ build_and_install() { } try_build_install() { + set_tmpdir + if [ "${DRY_RUN}" -eq 1 ]; then progress "Would attempt to install by building locally..." else diff --git a/packaging/installer/methods/freebsd.md b/packaging/installer/methods/freebsd.md index 12b55d6ad..3523157bd 100644 --- a/packaging/installer/methods/freebsd.md +++ b/packaging/installer/methods/freebsd.md @@ -20,7 +20,7 @@ This is how to install the latest Netdata version on FreeBSD: Install required packages (**need root permission**): ```sh -pkg install bash e2fsprogs-libuuid git curl autoconf automake pkgconf pidof Judy liblz4 libuv json-c cmake gmake +pkg install bash e2fsprogs-libuuid git curl autoconf automake pkgconf pidof liblz4 libuv json-c cmake gmake ``` Download Netdata: diff --git a/packaging/installer/methods/manual.md b/packaging/installer/methods/manual.md index aaf1451df..c47c2e364 100644 --- a/packaging/installer/methods/manual.md +++ b/packaging/installer/methods/manual.md @@ -25,9 +25,6 @@ and other operating systems and is regularly tested. You can find this tool [her - **Alpine** Linux and its derivatives - You have to install `bash` yourself, before using the installer. -- **Arch** Linux and its derivatives - - You need arch/aur for package Judy. - - **Gentoo** Linux and its derivatives - **Debian** Linux and its derivatives (including **Ubuntu**, **Mint**) @@ -67,16 +64,16 @@ This is how to do it by hand: ```sh # Debian / Ubuntu -apt-get install zlib1g-dev uuid-dev libuv1-dev liblz4-dev libjudy-dev libssl-dev libelf-dev libmnl-dev libprotobuf-dev protobuf-compiler gcc g++ make git autoconf autoconf-archive autogen automake pkg-config curl python cmake +apt-get install zlib1g-dev uuid-dev libuv1-dev liblz4-dev libssl-dev libelf-dev libmnl-dev libprotobuf-dev protobuf-compiler gcc g++ make git autoconf autoconf-archive autogen automake pkg-config curl python cmake # Fedora -dnf install zlib-devel libuuid-devel libuv-devel lz4-devel Judy-devel openssl-devel elfutils-libelf-devel libmnl-devel protobuf-devel protobuf-compiler gcc gcc-c++ make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python cmake +dnf install zlib-devel libuuid-devel libuv-devel lz4-devel openssl-devel elfutils-libelf-devel libmnl-devel protobuf-devel protobuf-compiler gcc gcc-c++ make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python cmake # CentOS / Red Hat Enterprise Linux -yum install autoconf automake curl gcc gcc-c++ git libmnl-devel libuuid-devel openssl-devel libuv-devel lz4-devel Judy-devel elfutils-libelf-devel protobuf protobuf-devel protobuf-compiler make nc pkgconfig python zlib-devel cmake +yum install autoconf automake curl gcc gcc-c++ git libmnl-devel libuuid-devel openssl-devel libuv-devel lz4-devel elfutils-libelf-devel protobuf protobuf-devel protobuf-compiler make nc pkgconfig python zlib-devel cmake # openSUSE -zypper install zlib-devel libuuid-devel libuv-devel liblz4-devel judy-devel libopenssl-devel libelf-devel libmnl-devel protobuf-devel gcc gcc-c++ make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python cmake +zypper install zlib-devel libuuid-devel libuv-devel liblz4-devel libopenssl-devel libelf-devel libmnl-devel protobuf-devel gcc gcc-c++ make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python cmake ``` Once Netdata is compiled, to run it the following packages are required (already installed using the above commands): @@ -117,7 +114,6 @@ Netdata DB engine can be enabled when these are installed (they are optional): | package | description| |:-----:|-----------| | `liblz4` | Extremely fast compression algorithm, version r129 or greater| -| `Judy` | General purpose dynamic array| | `openssl`| Cryptography and SSL/TLS toolkit| *Netdata will greatly benefit if you have the above packages installed, but it will still work without them.* @@ -175,8 +171,6 @@ yum install -y http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-3. # Install Devel Packages yum install autoconf automake curl gcc git cmake libuuid-devel openssl-devel libuv-devel lz4-devel make nc pkgconfig python3 zlib-devel -# Install Judy-Devel directly -yum install -y http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/Judy-devel-1.0.5-18.module_el8.1.0+217+4d875839.x86_64.rpm ``` ## Install Netdata diff --git a/packaging/installer/methods/pfsense.md b/packaging/installer/methods/pfsense.md index f0d730036..e0556629c 100644 --- a/packaging/installer/methods/pfsense.md +++ b/packaging/installer/methods/pfsense.md @@ -25,7 +25,6 @@ pkg install -y pkgconf bash e2fsprogs-libuuid libuv nano Then run the following commands to download various dependencies from the FreeBSD repository. ```sh -pkg add http://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/Judy-1.0.5_3.txz pkg add http://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/json-c-0.15_1.txz pkg add http://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/py38-certifi-2021.10.8.txz pkg add http://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/py38-asn1crypto-1.4.0.txz diff --git a/packaging/installer/methods/source.md b/packaging/installer/methods/source.md index a25323f0c..d8f4f0bda 100644 --- a/packaging/installer/methods/source.md +++ b/packaging/installer/methods/source.md @@ -32,7 +32,6 @@ Additionally, the following build time features require additional dependencies: - dbengine metric storage: - liblz4 r129 or newer - OpenSSL 1.0 or newer (LibreSSL _amy_ work, but is largely untested). - - [libJudy](http://judy.sourceforge.net/) - Netdata Cloud support: - A working internet connection - A recent version of CMake diff --git a/packaging/installer/netdata-updater.sh b/packaging/installer/netdata-updater.sh index e4cb29a45..15b7deda8 100755 --- a/packaging/installer/netdata-updater.sh +++ b/packaging/installer/netdata-updater.sh @@ -28,7 +28,7 @@ # Author: Pavlos Emm. Katsoulakis # Author: Austin S. Hemmelgarn -# Next unused error code: U001A +# Next unused error code: U001B set -e @@ -266,10 +266,10 @@ str_in_list() { safe_sha256sum() { # Within the context of the installer, we only use -c option that is common between the two commands # We will have to reconsider if we start non-common options - if command -v sha256sum > /dev/null 2>&1; then - sha256sum "$@" - elif command -v shasum > /dev/null 2>&1; then + if command -v shasum > /dev/null 2>&1; then shasum -a 256 "$@" + elif command -v sha256sum > /dev/null 2>&1; then + sha256sum "$@" else fatal "I could not find a suitable checksum binary to use" U0002 fi @@ -420,7 +420,9 @@ self_update() { if _safe_download "https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/netdata-updater.sh" ./netdata-updater.sh; then chmod +x ./netdata-updater.sh || exit 1 export ENVIRONMENT_FILE="${ENVIRONMENT_FILE}" - exec ./netdata-updater.sh --not-running-from-cron --no-updater-self-update --tmpdir-path "$(pwd)" + force_update="" + [ "$NETDATA_FORCE_UPDATE" = "1" ] && force_update="--force-update" + exec ./netdata-updater.sh --not-running-from-cron --no-updater-self-update "$force_update" --tmpdir-path "$(pwd)" else error "Failed to download newest version of updater script, continuing with current version." fi @@ -551,7 +553,11 @@ update_build() { NEW_CHECKSUM="$(safe_sha256sum netdata-latest.tar.gz 2> /dev/null | cut -d' ' -f1)" tar -xf netdata-latest.tar.gz >&3 2>&3 rm netdata-latest.tar.gz >&3 2>&3 - cd "$(find . -maxdepth 1 -name "netdata-${path_version}*" | head -n 1)" || fatal "Failed to switch to build directory" U0017 + if [ -z "$path_version" ]; then + latest_tag="$(get_latest_version)" + path_version="$(echo "${latest_tag}" | cut -f 1 -d "-")" + fi + cd "$(find . -maxdepth 1 -type d -name "netdata-${path_version}*" | head -n 1)" || fatal "Failed to switch to build directory" U0017 RUN_INSTALLER=1 fi fi @@ -844,27 +850,30 @@ if [ -r "$(dirname "${ENVIRONMENT_FILE}")/.install-type" ]; then fi while [ -n "${1}" ]; do - if [ "${1}" = "--not-running-from-cron" ]; then - NETDATA_NOT_RUNNING_FROM_CRON=1 - shift 1 - elif [ "${1}" = "--no-updater-self-update" ]; then - NETDATA_NO_UPDATER_SELF_UPDATE=1 - shift 1 - elif [ "${1}" = "--force-update" ]; then - NETDATA_FORCE_UPDATE=1 - shift 1 - elif [ "${1}" = "--tmpdir-path" ]; then - NETDATA_TMPDIR_PATH="${2}" - shift 2 - elif [ "${1}" = "--enable-auto-updates" ]; then - enable_netdata_updater "${2}" - exit $? - elif [ "${1}" = "--disable-auto-updates" ]; then - disable_netdata_updater - exit $? - else - break - fi + case "${1}" in + --not-running-from-cron) NETDATA_NOT_RUNNING_FROM_CRON=1 ;; + --no-updater-self-update) NETDATA_NO_UPDATER_SELF_UPDATE=1 ;; + --force-update) NETDATA_FORCE_UPDATE=1 ;; + --non-interactive) INTERACTIVE=0 ;; + --interactive) INTERACTIVE=1 ;; + --tmpdir-path) + NETDATA_TMPDIR_PATH="${2}" + shift 1 + ;; + --enable-auto-updates) + enable_netdata_updater "${2}" + exit $? + ;; + --disable-auto-updates) + disable_netdata_updater + exit $? + ;; + *) + fatal "Unrecognized option ${1}" U001A + ;; + esac + + shift 1 done # Random sleep to alleviate stampede effect of Agents upgrading -- cgit v1.2.3