diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-08-10 09:18:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-08-10 09:18:49 +0000 |
commit | dd814a7c1a8de056a79f7238578b09236edd5506 (patch) | |
tree | 429e7eed5a634a4efe9a6877ce66da8e64aa1782 /packaging/installer | |
parent | Adding upstream version 1.41.0. (diff) | |
download | netdata-dd814a7c1a8de056a79f7238578b09236edd5506.tar.xz netdata-dd814a7c1a8de056a79f7238578b09236edd5506.zip |
Adding upstream version 1.42.0.upstream/1.42.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'packaging/installer')
-rw-r--r-- | packaging/installer/README.md | 12 | ||||
-rw-r--r-- | packaging/installer/UPDATE.md | 3 | ||||
-rwxr-xr-x | packaging/installer/dependencies/centos.sh | 27 | ||||
-rwxr-xr-x | packaging/installer/dependencies/clearlinux.sh | 19 | ||||
-rwxr-xr-x | packaging/installer/dependencies/debian.sh | 31 | ||||
-rwxr-xr-x | packaging/installer/dependencies/fedora.sh | 29 | ||||
-rwxr-xr-x | packaging/installer/dependencies/ol.sh | 29 | ||||
-rwxr-xr-x | packaging/installer/dependencies/opensuse.sh | 33 | ||||
-rwxr-xr-x | packaging/installer/dependencies/rockylinux.sh | 27 | ||||
-rwxr-xr-x | packaging/installer/dependencies/ubuntu.sh | 33 | ||||
-rwxr-xr-x | packaging/installer/install-required-packages.sh | 14 | ||||
-rwxr-xr-x | packaging/installer/kickstart.sh | 52 | ||||
-rw-r--r-- | packaging/installer/methods/kickstart.md | 4 | ||||
-rw-r--r-- | packaging/installer/methods/macos.md | 4 | ||||
-rwxr-xr-x | packaging/installer/netdata-updater.sh | 59 |
15 files changed, 220 insertions, 156 deletions
diff --git a/packaging/installer/README.md b/packaging/installer/README.md index 9a9beb72..e241ccc5 100644 --- a/packaging/installer/README.md +++ b/packaging/installer/README.md @@ -38,12 +38,6 @@ but we have some hints on what you might want to do next. Explore our [general advanced installation options and troubleshooting](#advanced-installation-options-and-troubleshooting), specific options for the [single line installer](#install-on-linux-with-one-line-installer), or [other installation methods](#other-installation-methods). -#### Agent user interface - -To access the UI provided by the locally installed agent, open a browser and navigate to `http://NODE:19999`, replacing `NODE` with either `localhost` or -the hostname/IP address of the remote node. You can also read more about -[the agent dashboard](https://github.com/netdata/netdata/blob/master/web/gui/README.md). - #### Configuration Discover the recommended way to [configure Netdata's settings or behavior](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md) using our built-in @@ -94,7 +88,7 @@ To install, copy the script, paste it into your node's terminal, and hit `Enter` > If you plan to also claim the node to Netdata Cloud, make sure to replace `YOUR_CLAIM_TOKEN` with the claim token of your space, and `YOUR_ROOM_ID` with the ID of the room you are claiming to. > You can leave the room id blank to have your node claimed to the default "All nodes" room. -Jump down to [what's next](#whats-next) to learn how to view your new dashboard and take your next steps monitoring and +Jump up to [what's next](#whats-next) to learn how to view your new dashboard and take your next steps in monitoring and troubleshooting with Netdata. ## Other installation methods @@ -227,7 +221,7 @@ PowerTools, to gather hard dependencies. See the [CentOS 6](https://github.com/n #### Access to file is not permitted -If you see an error similar to `Access to file is not permitted: /usr/share/netdata/web//index.html` when you try to +If you see an error similar to `Access to file is not permitted: /usr/share/netdata/web/index.html` when you try to visit the Agent dashboard at `http://NODE:19999`, you need to update Netdata's permissions to match those of your system. @@ -244,7 +238,7 @@ These files need to have the same user and group used to install your netdata. S `netdata` and group `netdata`, in this scenario you will need to run the following command to fix the error: ```bash -# chown -R netdata.netdata /usr/share/netdata/web +# chown -R netdata:netdata /usr/share/netdata/web ``` #### Multiple versions of OpenSSL diff --git a/packaging/installer/UPDATE.md b/packaging/installer/UPDATE.md index 492f464e..b1f77916 100644 --- a/packaging/installer/UPDATE.md +++ b/packaging/installer/UPDATE.md @@ -182,3 +182,6 @@ The following configuration options are currently supported: as a scheduled task. This random delay helps avoid issues resulting from too many nodes trying to reconnect to the Cloud at the same time. The default value is 3600, which corresponds to one hour. Most users should not ever need to change this. +- `NETDATA_NO_SYSTEMD_JOURNAL`: If set to a value other than 0, skip attempting to install the + `netdata-plugin-systemd-journal` package on supported systems on update. This optional package will be installed + by default on supported systems by the updater if this option is not set. Only affects systems using native packages. diff --git a/packaging/installer/dependencies/centos.sh b/packaging/installer/dependencies/centos.sh index 845f1113..7d7c6cb4 100755 --- a/packaging/installer/dependencies/centos.sh +++ b/packaging/installer/dependencies/centos.sh @@ -5,30 +5,31 @@ set -e declare -a package_tree=( - gcc - gcc-c++ - make autoconf autoconf-archive automake + cmake + curl + elfutils-libelf-devel + gcc + gcc-c++ + git + gzip + json-c-devel libatomic + libmnl-devel libtool - pkgconfig - cmake - zlib-devel libuuid-devel - libmnl-devel - json-c-devel - libyaml-devel libuv-devel + libyaml-devel lz4-devel + make openssl-devel + pkgconfig python3 - elfutils-libelf-devel - git + systemd-devel tar - curl - gzip + zlib-devel ) os_version() { diff --git a/packaging/installer/dependencies/clearlinux.sh b/packaging/installer/dependencies/clearlinux.sh index f6f616d6..67d3ea24 100755 --- a/packaging/installer/dependencies/clearlinux.sh +++ b/packaging/installer/dependencies/clearlinux.sh @@ -9,22 +9,23 @@ DONT_WAIT=0 declare -a package_tree=( c-basic - make - sysadmin-basic - devpkg-zlib - devpkg-util-linux - devpkg-libmnl + curl + devpkg-elfutils devpkg-json-c - yaml-dev + devpkg-libmnl devpkg-libuv devpkg-lz4 devpkg-openssl - devpkg-elfutils - git + devpkg-util-linux + devpkg-zlib findutils - curl + git gzip + make python3-basic + service-os-dev + sysadmin-basic + yaml-dev ) usage() { diff --git a/packaging/installer/dependencies/debian.sh b/packaging/installer/dependencies/debian.sh index 8186940e..09a5d633 100755 --- a/packaging/installer/dependencies/debian.sh +++ b/packaging/installer/dependencies/debian.sh @@ -8,32 +8,33 @@ NON_INTERACTIVE=0 DONT_WAIT=0 package_tree=" - git - gcc - g++ - make - automake - cmake autoconf autoconf-archive autogen - libatomic1 - libtool - pkg-config - tar + automake + cmake curl + g++ + gcc + git gzip - zlib1g-dev - uuid-dev - libmnl-dev + libatomic1 + libelf-dev libjson-c-dev - libuv1-dev liblz4-dev + libmnl-dev libssl-dev - libelf-dev + libsystemd-dev + libtool + libuv1-dev libyaml-dev + make + pkg-config python python3 + tar + uuid-dev + zlib1g-dev " usage() { diff --git a/packaging/installer/dependencies/fedora.sh b/packaging/installer/dependencies/fedora.sh index 58912288..a457ef2e 100755 --- a/packaging/installer/dependencies/fedora.sh +++ b/packaging/installer/dependencies/fedora.sh @@ -24,32 +24,33 @@ else fi declare -a package_tree=( - findutils - gcc - gcc-c++ - make autoconf autoconf-archive autogen automake + cmake + curl + elfutils-libelf-devel + findutils + gcc + gcc-c++ + git + gzip + json-c-devel libatomic + libmnl-devel libtool - cmake - zlib-devel libuuid-devel - libmnl-devel - json-c-devel - libyaml-devel libuv-devel + libyaml-devel lz4-devel + make openssl-devel - elfutils-libelf-devel - git pkgconfig - tar - curl - gzip python3 + systemd-devel + tar + zlib-devel "${ulogd_pkg}" ) diff --git a/packaging/installer/dependencies/ol.sh b/packaging/installer/dependencies/ol.sh index 2166bcc5..f0d8341f 100755 --- a/packaging/installer/dependencies/ol.sh +++ b/packaging/installer/dependencies/ol.sh @@ -8,31 +8,32 @@ NON_INTERACTIVE=0 DONT_WAIT=0 declare -a package_tree=( - gcc - gcc-c++ - make autoconf autoconf-archive autogen automake + cmake + curl + elfutils-libelf-devel + gcc + gcc-c++ + git + gzip + json-c-devel libatomic + libmnl-devel libtool - pkgconfig - cmake - tar - zlib-devel libuuid-devel - libmnl-devel - json-c-devel - libyaml-devel libuv-devel + libyaml-devel lz4-devel + make openssl-devel + pkgconfig python3 - elfutils-libelf-devel - git - curl - gzip + systemd-devel + tar + zlib-devel ) prompt() { diff --git a/packaging/installer/dependencies/opensuse.sh b/packaging/installer/dependencies/opensuse.sh index 81291ef7..3f14d58b 100755 --- a/packaging/installer/dependencies/opensuse.sh +++ b/packaging/installer/dependencies/opensuse.sh @@ -10,31 +10,32 @@ NON_INTERACTIVE=0 DONT_WAIT=0 declare -a package_tree=( - gcc - gcc-c++ - make autoconf autoconf-archive autogen automake - libatomic1 - libtool - pkg-config cmake - zlib-devel - libuuid-devel - libmnl-devel + curl + gcc + gcc-c++ + git + gzip + libatomic1 + libelf-devel libjson-c-devel - libyaml-devel - libuv-devel liblz4-devel + libmnl-devel libopenssl-devel - libelf-devel - git - tar - curl - gzip + libtool + libuuid-devel + libuv-devel + libyaml-devel + make + pkg-config python3 + systemd-devel + tar + zlib-devel ) usage() { diff --git a/packaging/installer/dependencies/rockylinux.sh b/packaging/installer/dependencies/rockylinux.sh index 7ac98f5e..f90b997b 100755 --- a/packaging/installer/dependencies/rockylinux.sh +++ b/packaging/installer/dependencies/rockylinux.sh @@ -8,31 +8,32 @@ NON_INTERACTIVE=0 DONT_WAIT=0 declare -a package_tree=( - gcc - gcc-c++ - make autoconf autoconf-archive autogen automake + cmake + curl + elfutils-libelf-devel + gcc + gcc-c++ + git + gzip + json-c-devel libatomic + libmnl-devel libtool - pkgconfig - cmake - zlib-devel libuuid-devel - libmnl-devel - json-c-devel - libyaml-devel libuv-devel + libyaml-devel lz4-devel + make openssl-devel + pkgconfig python3 - elfutils-libelf-devel - git + systemd-devel tar - curl - gzip + zlib-devel ) prompt() { diff --git a/packaging/installer/dependencies/ubuntu.sh b/packaging/installer/dependencies/ubuntu.sh index e3d734c6..a5dc2eae 100755 --- a/packaging/installer/dependencies/ubuntu.sh +++ b/packaging/installer/dependencies/ubuntu.sh @@ -8,31 +8,32 @@ NON_INTERACTIVE=0 DONT_WAIT=0 package_tree=" - git - gcc - g++ - make - automake - cmake autoconf autoconf-archive autogen - libatomic1 - libtool - pkg-config - tar + automake + cmake curl + g++ + gcc + git gzip - zlib1g-dev - uuid-dev - libmnl-dev + libatomic1 + libelf-dev libjson-c-dev - libyaml-dev - libuv1-dev liblz4-dev + libmnl-dev libssl-dev - libelf-dev + libsystemd-dev + libtool + libuv1-dev + libyaml-dev + make + pkg-config python3 + tar + uuid-dev + zlib1g-dev " usage() { cat << EOF diff --git a/packaging/installer/install-required-packages.sh b/packaging/installer/install-required-packages.sh index a05d7440..9eba3845 100755 --- a/packaging/installer/install-required-packages.sh +++ b/packaging/installer/install-required-packages.sh @@ -708,6 +708,19 @@ declare -A pkg_libatomic=( ['default']="libatomic" ) +declare -A pkg_libsystemd_dev=( + ['alpine']="NOTREQUIRED" + ['arch']="NOTREQUIRED" # inherently present on systems actually using systemd + ['clearlinux']="system-os-dev" + ['debian']="libsystemd-dev" + ['freebsd']="NOTREQUIRED" + ['gentoo']="NOTREQUIRED" # inherently present on systems actually using systemd + ['macos']="NOTREQUIRED" + ['sabayon']="NOTREQUIRED" # inherently present on systems actually using systemd + ['ubuntu']="libsystemd-dev" + ['default']="systemd-devel" +) + declare -A pkg_bridge_utils=( ['gentoo']="net-misc/bridge-utils" ['clearlinux']="network-basic" @@ -1247,6 +1260,7 @@ packages() { suitable_package libmnl-dev suitable_package json-c-dev suitable_package libyaml-dev + suitable_package libsystemd-dev fi # ------------------------------------------------------------------------- diff --git a/packaging/installer/kickstart.sh b/packaging/installer/kickstart.sh index 31930f9d..2d793eaf 100755 --- a/packaging/installer/kickstart.sh +++ b/packaging/installer/kickstart.sh @@ -50,7 +50,7 @@ SELECTED_INSTALL_METHOD="none" INSTALL_TYPE="unknown" INSTALL_PREFIX="" NETDATA_AUTO_UPDATES="default" -NETDATA_CLAIM_URL="https://api.netdata.cloud" +NETDATA_CLAIM_URL="https://app.netdata.cloud" NETDATA_COMMAND="default" NETDATA_DISABLE_CLOUD=0 NETDATA_INSTALLER_OPTIONS="" @@ -257,14 +257,16 @@ telemetry_event() { TOTAL_RAM="$((TOTAL_RAM * 1024))" fi + MD5_PATH="$(exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum)" + if [ "${KERNEL_NAME}" = Darwin ] && command -v ioreg >/dev/null 2>&1; then DISTINCT_ID="macos-$(ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }')" - elif [ -f /etc/machine-id ]; then - DISTINCT_ID="machine-$(cat /etc/machine-id)" - elif [ -f /var/db/dbus/machine-id ]; then - DISTINCT_ID="dbus-$(cat /var/db/dbus/machine-id)" - elif [ -f /var/lib/dbus/machine-id ]; then - DISTINCT_ID="dbus-$(cat /var/lib/dbus/machine-id)" + elif [ -f /etc/machine-id ] && [ -n "$MD5_PATH" ]; then + DISTINCT_ID="machine-$($MD5_PATH < /etc/machine-id | cut -f1 -d" ")" + elif [ -f /var/db/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then + DISTINCT_ID="dbus-$($MD5_PATH < /var/db/dbus/machine-id | cut -f1 -d" ")" + elif [ -f /var/lib/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then + DISTINCT_ID="dbus-$($MD5_PATH < /var/lib/dbus/machine-id | cut -f1 -d" ")" elif command -v uuidgen > /dev/null 2>&1; then DISTINCT_ID="uuid-$(uuidgen | tr '[:upper:]' '[:lower:]')" else @@ -300,7 +302,8 @@ telemetry_event() { "system_kernel_name": "${KERNEL_NAME}", "system_kernel_version": "$(uname -r)", "system_architecture": "$(uname -m)", - "system_total_ram": "${TOTAL_RAM:-unknown}" + "system_total_ram": "${TOTAL_RAM:-unknown}", + "system_distinct_id": "${DISTINCT_ID}" } } EOF @@ -1330,7 +1333,7 @@ check_special_native_deps() { progress "EPEL is available, attempting to install so that required dependencies are available." # shellcheck disable=SC2086 - if ! run_as_root env ${env} ${pm_cmd} install ${pkg_install_opts} epel-release; then + if ! run_as_root env ${env} ${pm_cmd} ${install_subcmd} ${pkg_install_opts} epel-release; then warning "Failed to install EPEL, even though it is required to install native packages on this system." return 1 fi @@ -1350,12 +1353,16 @@ common_rpm_opts() { } common_dnf_opts() { + if [ "${INTERACTIVE}" = "0" ]; then + interactive_opts="-y" + fi if command -v dnf > /dev/null; then pm_cmd="dnf" repo_subcmd="makecache" else pm_cmd="yum" fi + install_subcmd="install" pkg_install_opts="${interactive_opts}" repo_update_opts="${interactive_opts}" uninstall_subcmd="remove" @@ -1390,16 +1397,18 @@ try_package_install() { release="" fi - if [ "${INTERACTIVE}" = "0" ]; then - interactive_opts="-y" - env="DEBIAN_FRONTEND=noninteractive" - else - interactive_opts="" - env="" - fi + interactive_opts="" + env="" case "${DISTRO_COMPAT_NAME}" in debian|ubuntu) + if [ "${INTERACTIVE}" = "0" ]; then + install_subcmd="-o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install" + interactive_opts="-y" + env="DEBIAN_FRONTEND=noninteractive" + else + install_subcmd="install" + fi needs_early_refresh=1 pm_cmd="apt-get" repo_subcmd="update" @@ -1427,6 +1436,11 @@ try_package_install() { repo_prefix="${DISTRO_COMPAT_NAME}/${SYSVERSION}" ;; opensuse) + if [ "${INTERACTIVE}" = "0" ]; then + install_subcmd="--non-interactive --no-gpg-checks install" + else + install_subcmd="--no-gpg-checks install" + fi common_rpm_opts pm_cmd="zypper" repo_subcmd="--gpg-auto-import-keys refresh" @@ -1497,7 +1511,7 @@ try_package_install() { fi # shellcheck disable=SC2086 - if ! run_as_root env ${env} ${pm_cmd} install ${pkg_install_opts} "${tmpdir}/${repoconfig_file}"; then + if ! run_as_root env ${env} ${pm_cmd} ${install_subcmd} ${pkg_install_opts} "${tmpdir}/${repoconfig_file}"; then warning "Failed to install repository configuration package." return 2 fi @@ -1546,7 +1560,7 @@ try_package_install() { fi # shellcheck disable=SC2086 - if ! run_as_root env ${env} ${pm_cmd} install ${pkg_install_opts} "netdata${NATIVE_VERSION}"; then + if ! run_as_root env ${env} ${pm_cmd} ${install_subcmd} ${pkg_install_opts} "netdata${NATIVE_VERSION}"; then warning "Failed to install Netdata package." if [ -z "${NO_CLEANUP}" ]; then progress "Attempting to uninstall repository configuration package." @@ -1559,7 +1573,7 @@ try_package_install() { if [ -n "${explicitly_install_native_plugins}" ]; then progress "Installing external plugins." # shellcheck disable=SC2086 - if ! run_as_root env ${env} ${pm_cmd} install ${DEFAULT_PLUGIN_PACKAGES}; then + if ! run_as_root env ${env} ${pm_cmd} ${install_subcmd} ${DEFAULT_PLUGIN_PACKAGES}; then warning "Failed to install external plugin packages. Some collectors may not be available." fi fi diff --git a/packaging/installer/methods/kickstart.md b/packaging/installer/methods/kickstart.md index 374ac594..bdead412 100644 --- a/packaging/installer/methods/kickstart.md +++ b/packaging/installer/methods/kickstart.md @@ -98,13 +98,13 @@ The `kickstart.sh` script accepts a number of optional parameters to control how - `--claim-rooms`: Specify a comma-separated list of tokens for each War Room this node should appear in. - `--claim-proxy`: Specify a proxy to use when connecting to the cloud in the form of `http://[user:pass@]host:ip` for an HTTP(S) proxy. See [connecting through a proxy](https://github.com/netdata/netdata/blob/master/claim/README.md#connect-through-a-proxy) for details. -- `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://api.netdata.cloud`. +- `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://app.netdata.cloud`. - `--override-distro`: Override the distro detection logic and assume the system is using a specific Linux distribution and release. Takes a single argument consisting of the values of the `ID`, `VERSION_ID`, and `VERSION_CODENAME` fields from `/etc/os-release` for the desired distribution. The following options are mutually exclusive and specifiy special operations other than trying to install Netdata normally or update an existing install: - `--reinstall`: If there is an existing install, reinstall it instead of trying to update it. If there is not an existing install, install netdata normally. -- `--reinstall-even-if-unsafe`: If there is an existing install, reinstall it instead of trying to update it, even if doing so is known to potentially break things (for example, if we cannot detect what tyep of installation it is). If there is not an existing install, install Netdata normally. +- `--reinstall-even-if-unsafe`: If there is an existing install, reinstall it instead of trying to update it, even if doing so is known to potentially break things (for example, if we cannot detect what type of installation it is). If there is not an existing install, install Netdata normally. - `--reinstall-clean`: If there is an existing install, uninstall it before trying to install Netdata. Fails if there is no existing install. - `--uninstall`: Uninstall an existing installation of Netdata. Fails if there is no existing install. - `--claim-only`: If there is an existing install, only try to claim it without attempting to update it. If there is no existing install, install and claim Netdata normally. diff --git a/packaging/installer/methods/macos.md b/packaging/installer/methods/macos.md index b09632fa..e7ff33ed 100644 --- a/packaging/installer/methods/macos.md +++ b/packaging/installer/methods/macos.md @@ -45,11 +45,11 @@ area](https://github.com/netdata/netdata/blob/master/docs/cloud/manage/organize- - `--claim-rooms`: Specify a comma-separated list of tokens for each War Room this node should appear in. - `--claim-proxy`: Specify a proxy to use when connecting to the cloud in the form of `http://[user:pass@]host:ip` for an HTTP(S) proxy. See [connecting through a proxy](https://github.com/netdata/netdata/blob/master/claim/README.md#connect-through-a-proxy) for details. -- `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://api.netdata.cloud`. +- `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://app.netdata.cloud`. For example: ```bash -curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --install-prefix /usr/local/ --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://api.netdata.cloud +curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --install-prefix /usr/local/ --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://app.netdata.cloud ``` The Netdata Agent is installed under `/usr/local/netdata` on your machine. Your machine will also show up as a node in your Netdata Cloud. diff --git a/packaging/installer/netdata-updater.sh b/packaging/installer/netdata-updater.sh index 8e06923e..811657c2 100755 --- a/packaging/installer/netdata-updater.sh +++ b/packaging/installer/netdata-updater.sh @@ -37,7 +37,9 @@ PACKAGES_SCRIPT="https://raw.githubusercontent.com/netdata/netdata/master/packag NETDATA_STABLE_BASE_URL="${NETDATA_BASE_URL:-https://github.com/netdata/netdata/releases}" NETDATA_NIGHTLY_BASE_URL="${NETDATA_BASE_URL:-https://github.com/netdata/netdata-nightlies/releases}" +# Following variables are intended to be overridden by the updater config file. NETDATA_UPDATER_JITTER=3600 +NETDATA_NO_SYSTEMD_JOURNAL=0 script_dir="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd -P)" @@ -744,42 +746,57 @@ update_binpkg() { esac fi - if [ "${INTERACTIVE}" = "0" ]; then - interactive_opts="-y" - env="DEBIAN_FRONTEND=noninteractive" - else - interactive_opts="" - env="" - fi + interactive_opts="" + env="" case "${DISTRO_COMPAT_NAME}" in debian|ubuntu) + if [ "${INTERACTIVE}" = "0" ]; then + upgrade_subcmd="-o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold --only-upgrade install" + interactive_opts="-y" + env="DEBIAN_FRONTEND=noninteractive" + else + upgrade_subcmd="--only-upgrade install" + fi pm_cmd="apt-get" repo_subcmd="update" - upgrade_cmd="--only-upgrade install" + install_subcmd="install" + mark_auto_cmd="apt-mark auto" pkg_install_opts="${interactive_opts}" repo_update_opts="${interactive_opts}" - pkg_installed_check="dpkg -s" + pkg_installed_check="dpkg-query -s" INSTALL_TYPE="binpkg-deb" ;; centos|fedora|ol|amzn) + if [ "${INTERACTIVE}" = "0" ]; then + interactive_opts="-y" + fi if command -v dnf > /dev/null; then pm_cmd="dnf" repo_subcmd="makecache" + mark_auto_cmd="dnf mark remove" else pm_cmd="yum" + mark_auto_cmd="yumdb set reason dep" fi - upgrade_cmd="upgrade" + upgrade_subcmd="upgrade" + install_subcmd="install" pkg_install_opts="${interactive_opts}" repo_update_opts="${interactive_opts}" pkg_installed_check="rpm -q" INSTALL_TYPE="binpkg-rpm" ;; opensuse) + if [ "${INTERACTIVE}" = "0" ]; then + upgrade_subcmd="--non-interactive update" + else + upgrade_subcmd="update" + fi pm_cmd="zypper" repo_subcmd="--gpg-auto-import-keys refresh" - upgrade_cmd="update" - pkg_install_opts="${interactive_opts}" + install_subcmd="install" + mark_auto_cmd="" + pkg_install_opts="" repo_update_opts="" pkg_installed_check="rpm -q" INSTALL_TYPE="binpkg-rpm" @@ -798,7 +815,7 @@ update_binpkg() { for repopkg in netdata-repo netdata-repo-edge; do if ${pkg_installed_check} ${repopkg} > /dev/null 2>&1; then # shellcheck disable=SC2086 - env ${env} ${pm_cmd} ${upgrade_cmd} ${pkg_install_opts} ${repopkg} >&3 2>&3 || fatal "Failed to update Netdata repository config." U000D + env ${env} ${pm_cmd} ${upgrade_subcmd} ${pkg_install_opts} ${repopkg} >&3 2>&3 || fatal "Failed to update Netdata repository config." U000D # shellcheck disable=SC2086 if [ -n "${repo_subcmd}" ]; then env ${env} ${pm_cmd} ${repo_subcmd} ${repo_update_opts} >&3 2>&3 || fatal "Failed to update repository metadata." U000E @@ -807,7 +824,21 @@ update_binpkg() { done # shellcheck disable=SC2086 - env ${env} ${pm_cmd} ${upgrade_cmd} ${pkg_install_opts} netdata >&3 2>&3 || fatal "Failed to update Netdata package." U000F + env ${env} ${pm_cmd} ${upgrade_subcmd} ${pkg_install_opts} netdata >&3 2>&3 || fatal "Failed to update Netdata package." U000F + + if ${pkg_installed_check} systemd > /dev/null 2>&1; then + if [ "${NETDATA_NO_SYSTEMD_JOURNAL}" -eq 0 ]; then + if ! ${pkg_installed_check} netdata-plugin-systemd-journal > /dev/null 2>&1; then + env ${env} ${pm_cmd} ${install_subcmd} ${pkg_install_opts} netdata-plugin-systemd-journal >&3 2>&3 + + if [ -n "${mark_auto_cmd}" ]; then + # shellcheck disable=SC2086 + env ${env} ${mark_auto_cmd} netdata-plugin-systemd-journal >&3 2>&3 + fi + fi + fi + fi + [ -n "${logfile}" ] && rm "${logfile}" && logfile= return 0 } |