From 76162e300a56bc06f7c3da1812f00814ef4f37ce Mon Sep 17 00:00:00 2001 From: "Costa Tsaousis (ktsaou)" Date: Sat, 2 Jul 2016 17:24:08 +0300 Subject: [PATCH] more informative error messages in python-modules-installer.sh --- python.d/Makefile.am | 3 +++ python.d/python-modules-installer.sh.in | 35 ++++++++++++++++++------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/python.d/Makefile.am b/python.d/Makefile.am index d96ead82..b1098a2a 100644 --- a/python.d/Makefile.am +++ b/python.d/Makefile.am @@ -1,4 +1,7 @@ MAINTAINERCLEANFILES= $(srcdir)/Makefile.in +CLEANFILES = \ + python-modules-installer.sh \ + $(NULL) include $(top_srcdir)/build/subst.inc diff --git a/python.d/python-modules-installer.sh.in b/python.d/python-modules-installer.sh.in index 0fb8ba8b..0f2ccb26 100755 --- a/python.d/python-modules-installer.sh.in +++ b/python.d/python-modules-installer.sh.in @@ -30,6 +30,7 @@ do -h|--help) echo "${0} [--dir netdata-python.d-path] [--system]" + echo "Please make sure you have installed packages: python-pip (or python3-pip) python-dev libyaml-dev libmysqlclient-dev" exit 0 ;; @@ -56,14 +57,16 @@ then pv=3 pip="$(which pip3 2>/dev/null)" else - echo >&2 "Cannot detect python version" + echo >&2 "Cannot detect python version. Is python installed?" exit 1 fi [ -z "${pip}" ] && pip="$(which pip 2>/dev/null)" if [ -z "${pip}" ] then - echo >&2 "pip command is required to install python v${pv} modules" + echo >&2 "pip command is required to install python v${pv} modules." + [ "${pv}" = "2" ] && echo >&2 "Please install python-pip." + [ "${pv}" = "3" ] && echo >&2 "Please install python3-pip." exit 1 fi @@ -83,7 +86,8 @@ failed="" installed="" errors=0 pip_install() { - local ret x + local ret x msg="${1}" + shift echo >&2 echo >&2 @@ -102,16 +106,24 @@ pip_install() { ret=$? fi [ ${ret} -eq 0 ] && break - echo >&2 "failed to install: ${x}" + echo >&2 "failed to install: ${x}. ${msg}" done if [ ${ret} -ne 0 ] then - echo >&2 "ERROR: could not install any of: ${*}" + echo >&2 + echo >&2 + echo >&2 "FAILED: could not install any of: ${*}. ${msg}" + echo >&2 + echo >&2 errors=$(( errors + 1 )) failed="${failed}|${*}" else + echo >&2 + echo >&2 echo >&2 "SUCCESS: we have: ${x}" + echo >&2 + echo >&2 installed="${installed} ${x}" fi return ${ret} @@ -119,11 +131,11 @@ pip_install() { if [ "${pv}" = "2" ] then - pip_install pyyaml yaml - pip_install mysqlclient mysql-python pymysql + pip_install "is libyaml-dev and python-dev installed?" pyyaml + pip_install "is libmysqlclient-dev and python-dev installed?" mysqlclient mysql-python pymysql else - pip_install yaml pyyaml - pip_install mysql-python mysqlclient pymysql + pip_install "is libyaml-dev and python-dev installed?" pyyaml + pip_install "is libmysqlclient-dev and python-dev installed?" mysql-python mysqlclient pymysql fi echo >&2 @@ -131,6 +143,11 @@ echo >&2 if [ ${errors} -ne 0 ] then echo >&2 "Failed to install ${errors} modules: ${failed}" + echo >&2 + echo >&2 "If you are getting errors during cleanup from pip, there is a known bug" + echo >&2 "in certain versions of pip that prevents installing packages local to an" + echo >&2 "application. To install them system-wide please run:" + echo >&2 "$0 --system" exit 1 else echo >&2 "All done. We have: ${installed}" -- 2.39.2